
Sorting Out of Stock WooCommerce Products code
/**
* Sorting out of stock WooCommerce products - Order product collections by stock status, in-stock products first.
*/
class iWC_Orderby_Stock_Status
{
public function __construct()
{
// Check if WooCommerce is active
if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
add_filter('posts_clauses', array($this, 'order_by_stock_status'), 2000);
}
}
public 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())) {
$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;
}
}
new iWC_Orderby_Stock_Status;
/**
* END - Order product collections by stock status, instock products first.
*/
X Sign-Up For Our Newsletter
Tags
.htaccess Avoiding Hacks Code Recipes CSS media queries Page Speed Product Migration Security Basics Website Backup Website Security WooCommerce Functions WooCommerce Migration WooCommerce Product Sorting WooCommerce Setup WooCommerce Shipping WooCommerce Tips WooCommerce Tutorials WordPress Admin WordPress child theme WordPress eCommerce WordPress for Beginners WordPress functions.php WordPress Password WordPress Plugins WordPress Security WordPress Setup WordPress tutorials
2 Comments. Leave new
Amem to that! thanks a lot! #SaveTheDay
The code works like a charm. Thank you