انتقال محصولات ناموجود به انتهای لیست در ووکامرس آکادمی شادمان

در زمان ساخت فروشگاه اینترنتی با ووکامرس نمایش محصولات به صورت پیشفرض براساس تاریخ انتشار نمایش داده میشود. البته در برخی از قالب ها میتوان این ترتیب را تغییر داد ولی باز هم امکان نمایش محصولات ناموجود در انتهای لیست کمتر به آن اشاره شده است. در این مقاله قصد داریم محصولات ناموجود را به انتهای لیست محصولات در بخش های مختلف سایت فروشگاهی خود نمایش دهیم.

در کل میتوان گفت که این یکی از مشکلاتی میباشد که در بخش دسته بندی محصولات وجود دارد و زمانیکه محصولی ناموجود میشود همچنان بالاتر از محصولات موجود قرار میگیرد.

این ترتیب از نظر کاربری اشتباه است و باید اول محصولاتی که در فروشگاه اینترنتی ما موجود است نمایش داده شود بعد محصولات ناموجود!

نمایش محصولات ناموجود در انتهای لیست محصولات

برای اینکه این ترتیب را درست کنید کافیست یک تکیه کد را به فایل functions.php قالب خود اضافه کنید تا محصولات به درستی در سر جای خود قرار گیرند. این تکیه کد توسط آکادمی شادمان در دسترس عموم افراد قرار داده شده است تا بتوانید فروشگاه اینترنتی با رابط کاربری صحیح داشته باشید.

با نمایش درست و اصولی این قوانین قطعا فروشگاه اینترنتی شما فروش بیشتری را تجربه خواهد نمود.

تکیه کد زیر را به فایل فانکشن قالب خود اضافه کنید

//AC Change Order Product in Stock
function order_by_stock_status($posts_clauses){
    global $wpdb;
    // only change query on WooCommerce loop
    if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag() || is_product_taxonomy())){
        $posts_clauses['join'] .= &quot INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) "
        $posts_clauses['orderby'] = &quot istockstatus.meta_value ASC, &quot
. $posts_clauses['orderby'];
        $posts_clauses['where'] = &quot AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value <> '' &quot .
$posts_clauses['where'];
    }    return $posts_clauses;
}
add_filter('posts_clauses', 'order_by_stock_status', 9999);

همچنین در صورتیکه قصد دارید از این نکات کلیدی در زمان ساخت سایت فروشگاهی استفاده کنید در وب سایت آکادمی شادمان میتوانید مقالات بسیار مفیدی پیدا کنید.