Hide out of stock products, only when backorders aren’t allowed
<?php
function kfg_show_backorders( $is_visible, $id ) {
$product = new wC_Product( $id );
if ( ! $product->is_in_stock() && ! $product->backorders_allowed() ) {
$is_visible = false;
}
return $is_visible;
}
add_filter( 'woocommerce_product_is_visible', 'kfg_show_backorders', 10, 2 );
?>