Is it possible to show out of stock products at the end of a category or page in wordpress?
So the customer first see the products that are available and after that the products that are out of stock.
Is it possible to show out of stock products at the end of a category or page in wordpress?
So the customer first see the products that are available and after that the products that are out of stock.
This code work for me:
});
Access the global configuration options for inventory management in WooCommerce, look to the left of your WordPress admin and click on WooCommerce, then on Settings, then click on the Inventory tab.
You will find this "Out of Stock Visibility"
Out of Stock Visibility - This checkbox will allow you to determine if you want to hide out of inventory items within the WooCommerce catalog.
http://www.inmotionhosting.com/support/website/woocommerce/managing-inventory-in-woocommerce
For making them appear at the end of the category you could use pre_get_posts to order based on the stock, but then you'll lose your other sorting.
This is the best solution:
}, PHP_INT_MAX );
This is the same as Viktor & Bogdan's answer, but without the extra Class code.
It uses the
post_clause
filter to modify the product query. WeJOIN
the wp_postmeta table to the query and prepend anorderby _stock_status
clause to the existing query. This way any otherorderby
clauses remain in the query as well.You could change
istockstatus.meta_value ASC
toistockstatus.meta_value DESC
if you for some reason wanted the Out Of Stock items first.Tested on WP: 4.8; WC 3.0.8
Here is a snippet for rearranging products (in stock come first):
https://www.snip2code.com/Snippet/114858/WooCommerce-Products-Order-by-Stock-Stat
Try this code (put in functions.php of your theme):
Taken here.
For the last versions of WooCommerce see answer below: https://stackoverflow.com/a/44597448/3925099