web-dev-qa-db-ja.com

WP クエリ - 在庫があるバリエーションのあるWooCommerce製品を入手する

私は衣料品店を作っています。服はサイズ(xs、s、m、l、xlなど)に基づいて変わりやすい商品です。フィルターに基づいて、在庫のある商品を表示するためのフィルターを作成しようとしています。そのため、 "xs"フィルタをクリックすると、XSの変動があり、在庫の変動がある商品が表示されます。

これまでのところ、私はこのようなものを持っています:

$query_args = array(
 'post_type' => 'product', 'product_variation',
 'posts_per_page' => 12,
 'paged' => $paged,
 'tax_query' => array(
    array(
    'taxonomy' => 'pa_sizes',
    'field' => 'term_id',
    'terms' => 'xs',
    ),
 ),
 'meta_query' => array(
    array(
    'key' => '_stock_status',
    'value' => 'outofstock',
    'compare' => '='
    ),
 )
);

$query = new WP_Query($query_args);

私は今「在庫切れ」を探していることを知っていますが、それは単なるテストであり、在庫切れのサイズの製品をいくつか作成したにもかかわらず、これでも製品には関係しません。

1
Jordan Carter

この方法は正しくありませんか?

'post_type' => array('product', 'product_variation'),

あなたの$ query_argsは壊れた配列です

2
neurocore

Tax_queryを変更する必要があります。 xsterm_idではなくslugです。

だからあなたのtax_queryはのようになってしまうでしょう

'tax_query' => array(
    array(
       'taxonomy' => 'pa_sizes',
       'field' => 'slug',
       'terms' => 'xs'
    )
 )

私は「instock」問題も手助けしたいと思いますが、私はその質問にもこだわります。

2
Orestis Samaras