2016-03-24 24 views
5

Tôi sử dụng 3 trạng thái khả dụng: 'trong kho', 'hết hàng' và 'cho phép quay ngược'. Tôi muốn các sản phẩm xuất khẩu chỉ có trạng thái 'trong kho' sang XML. Vấn đề là woocommerce trả về giá trị "instock" cho cả hai trạng thái: 'in stock' và 'allow backorders'. Bây giờ truy vấn có dạng:Truy vấn sản phẩm Woocommerce cho trạng thái chứng khoán

$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(); 

Và nó xuất các sản phẩm có trạng thái 'instock' và 'backorders_allowed'. Có thể có cách để loại trừ các sản phẩm có 'backorders_allowed'.

Trả lời

4

Bạn có thể có nhiều bộ lọc meta_query. Xem (http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters). Theo mặc định, mối quan hệ giữa các bộ lọc này là AND. Bạn có thể thêm bộ lọc cho _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(); 
+0

Cảm ơn bạn rất nhiều! Nó hoạt động! –

Các vấn đề liên quan