programing

재고 상태에 대한 Woocommerce 제품 쿼리

oldcodes 2023. 3. 25. 11:53
반응형

재고 상태에 대한 Woocommerce 제품 쿼리

재고 있음, 품절, 백오더 허용의 3가지 상태를 사용하고 있습니다.'재고' 상태만 XML로 내보내고 싶습니다. 문제는 woocommerce가 '재고'와 '백오더 허용' 두 상태에 대해 값 'instock'을 반환한다는 것입니다.이제 쿼리는 다음과 같습니다.

$query = array(
    'post_type' => 'product',
    'posts_per_page' => -1,
    'meta_query' => array(
        array(
            'key' => '_stock_status',
            'value' => 'instock'
        )
    )
);
$wp_query = & new WP_Query($query);
while ($wp_query->have_posts()) : $wp_query->the_post();

또한 'instock' 및 'backorders_allowed' 상태의 제품을 수출합니다.아마도 'backorders_allowed'가 있는 제품을 제외하는 방법이 있을 것입니다.

meta_query 필터를 여러 개 사용할 수 있습니다.(http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters) 를 참조해 주세요.기본적으로 이러한 필터 간의 관계는 AND로 정상입니다.다음에 대한 필터를 추가할 수 있습니다._back_order = no.

$query = array(
    'post_type' => 'product',
    'posts_per_page' => -1,
    'meta_query' => array(
        array(
            'key' => '_stock_status',
            'value' => 'instock'
        ),
        array(
            'key' => '_backorders',
            'value' => 'no'
        ),
    )
);
$wp_query = & new WP_Query($query);
while ($wp_query->have_posts()) : $wp_query->the_post();

를 사용하는 것을 강력히 권장합니다.WC_Product_Query()대신WP_Query().

그래서 어떻게 하는지 보여드릴게요.WC_Product_Query().

$query_args = array(
    'limit'   => 10, //or whatever number of products you want to get.
    'stock_status' => 'instock' // or 'outofstock' or 'onbackorder' 
);

$query = new WC_Product_Query( $query_args );
$products = $query->get_products();

주의: stock_status를 여러 개 포함할 경우 어레이만 사용하면 됩니다.

'stock_status' => array('instock', 'outofstock', 'onbackorder') 

언급URL : https://stackoverflow.com/questions/36205792/woocommerce-product-query-for-stock-status

반응형