Начиная с WooCommerce 3, есть 2 способа исключить продукты "Нет в наличии" в ваших WP_Query
:
1) Включая налоговый запрос , например:
$products = new WP_Query( array(
'post_type' => 'product',
'meta_key' => 'total_sales',
'posts_per_page' => 6,
'orderby' =>'meta_value_num',
'order' => 'DESC',
'tax_query' => array( array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => array('outofstock'),
'operator' => 'NOT IN'
) ),
) );
2) Включая мета-запрос , например:
$products = new WP_Query( array(
'post_type' => 'product',
'meta_key' => 'total_sales',
'posts_per_page' => 6,
'orderby' =>'meta_value_num',
'order' => 'DESC',
'meta_query' => array( array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => '!=',
) ),
) );
Оба способа работают.