من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

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

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

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

در ووکامرس یکی معمولا بعد از مرتب سازی بر اساس جدیدترین، قدیمی‌ترین، بیش‌ترین قیمت، کم‌ترین قیمت ممکن است محصولات ناموجود در بالای لیست قرار بگیرند این موضوع تجربه کاربری کاربران را دچار مشکل می‌کند.

 

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

برای حل این مشکل در فایل functions.php قالب فعال سایت وردپرسی خود کد زیر را قرار دهید و آن را ذخیره کنید:

add_filter('posts_clauses', 'custom_move_contact_price_to_end', 9999);
function custom_move_contact_price_to_end($posts_clauses)
{
    global $wpdb;

    // Apply changes only on WooCommerce loops
    if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag() || is_product_taxonomy()))
    {
        // Join to postmeta table for price meta key
        $posts_clauses['join'] .= " LEFT JOIN $wpdb->postmeta price_meta ON ($wpdb->posts.ID = price_meta.post_id AND price_meta.meta_key = '_price') ";

        // Order by CASE condition to move "Contact" price products to the end
        $posts_clauses['orderby'] = " CASE WHEN price_meta.meta_value IS NULL OR price_meta.meta_value = '' OR price_meta.meta_value = 'تماس' THEN 1 ELSE 0 END ASC, " . $posts_clauses['orderby'];
    }

    return $posts_clauses;
}

 

حالا اگر محصولات موجود در لیست در هنگام مرتب سازی بالاتر از محصولات ناموجود قرار می گیرند.

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]