2016-03-24 12 views
5

Używam 3 stanów dostępności: "w magazynie", "brak w magazynie" i "zezwalaj na zaległości". Chcę eksportować produkty, które mają status "tylko w magazynie" do XML. Problem polega na tym, że woocommerce zwraca wartość "instock" dla obu stanów: "w magazynie" i "zezwalaj na zaległości". Teraz kwerenda wygląda następująco:Zapytanie produktowe Woocommerce o stan magazynowy

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

I eksportowych z instock „” i „” backorders_allowed statusów. Być może istnieje sposób, aby wykluczyć produkty z "backorders_allowed".

Odpowiedz

4

Możesz mieć wiele filtrów meta_query. Zobacz (http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters). Domyślnie relacja między tymi filtrami jest AND i jest w porządku. Możesz dodać filtr dla _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

Dziękuję bardzo! To działa! –