Home › Forums › WoodMart support forum › Order products shop listing by name ASC and Stock status › Reply To: Order products shop listing by name ASC and Stock status
April 23, 2024 at 11:29 am
#559750
Aizaz Imtiaz Awan
Keymaster
Hello,
Navigate to Appearance > Customize > WooCommerce > Default product sorting.
To show an out of stock product at the end of the archive pages, Try to add the following code in the function.php of the child theme.
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;
}
Best Regards.