Created
March 25, 2021 11:06
-
-
Save FrancoStino/f1c9e8e58788dbfd689509b487a4f1fd to your computer and use it in GitHub Desktop.
Show Out of stock products at the end in Woocommerce
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<? | |
/* | |
* Show Out of stock products at the end in Woocommerce | |
*/ | |
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()) /*|| is_front_page())*/ { // "is_front_page()" is optional | |
$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; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment