نحوه مرتب سازی محصولات در فروشگاه woocommerce

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

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

دیدگاهتان را بنویسید