Como consultar apenas produtos com status “in stock” no WooCommerce?

Estou tentando criar uma consulta que apenas retira produtos que estão em estoque dentro de uma determinada categoria de produto.

Aqui está o meu código de trabalho onde eu puxo todos os itens de volta na categoria e então eu tenho que percorrê-los até verificar se há um que está em estoque.

function CheckCategoryStock( $catToCheck ) { $args = array( 'posts_per_page' => -1, 'post_type' => 'product', 'hide_empty' => 1, 'product_cat' => $catToCheck, ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) : $query->the_post(); global $product; if ( $product->is_in_stock() ) { $catCounter = 0; return 1; } endwhile; } return 0; } 

Fazendo isso funciona, mas às vezes o código é lento porque ele tem que percorrer uma série de produtos antes de localizar um que esteja em estoque.

Solutions Collecting From Web of "Como consultar apenas produtos com status “in stock” no WooCommerce?"