特定の商品カテゴリ内の在庫のある商品のみを取得するクエリを作成しようとしています。
これは私が作業中のコードで、カテゴリ内のすべてのアイテムを引き戻してから、在庫があることを確認するまでそれらをループ処理する必要があります。
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;
}
このようにしてもうまくいきますが、在庫のあるものを見つける前に多数の製品をループ処理しなければならないため、コードが遅くなることがあります。
それはうまくいった!
これを追加しました:
'meta_query' => array(
array(
'key' => '_stock_status',
'value' => 'instock',
'compare' => '=',
)
)
ありがとうございます。