2016-03-24 12 views
5

Uso 3 stati di disponibilità: "disponibile", "non disponibile" e "Consenti ordini arretrati". Voglio esportare prodotti che sono solo in stato "in stock" in XML. Il problema è che woocommerce restituisce il valore "instock" per entrambi gli stati: "in stock" e "allow for backorders". Ora la domanda si presenta come:Richiesta di Woocommerce per stato magazzino

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

Ed esportazione con 'instock' e stati 'backorders_allowed. Forse c'è il modo di escludere i prodotti con "backorders_allowed".

risposta

4

È possibile avere più filtri meta_query. Vedi (http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters). Di default la relazione tra questi filtri è AND che va bene. È possibile aggiungere un filtro per _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

Grazie mille! Funziona! –