Come interrogare solo i prodotti con stato "in stock" in WooCommerce?

2 apr 2017, 04:51:36
Visualizzazioni: 17.1K
Voti: 6

Sto cercando di costruire una query che recuperi solo i prodotti disponibili in magazzino all'interno di una determinata categoria di prodotti.

Ecco il mio codice funzionante dove recupero tutti gli articoli nella categoria e poi devo scorrere finché non verifico che ce ne sia uno disponibile:

function CheckCategoryStock( $catToCheck ) {

    $args = array(
        'posts_per_page' => -1,       // Recupera tutti i prodotti
        'post_type'      => 'product',  // Tipo post: prodotti
        'hide_empty'     => 1,          // Nascondi categorie vuote        
        'product_cat'    => $catToCheck, // Categoria specifica
    );

    $query = new WP_Query( $args );

    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) : $query->the_post();
            global $product;
            if ( $product->is_in_stock() ) {  // Verifica disponibilità
                $catCounter = 0;
                return 1;  // Trovato prodotto disponibile
            }        
        endwhile;
    }    

    return 0;  // Nessun prodotto disponibile

}    

Questo approccio funziona, ma a volte il codice risulta lento perché deve scorrere molti prodotti prima di trovarne uno disponibile.

1
Commenti

Dai un'occhiata a questo, forse può aiutarti: Query per post da qualsiasi tipo di post ma aggiungi solo prodotti disponibili

flomei flomei
2 apr 2017 05:06:06
Tutte le risposte alla domanda 1
1
13

Ha funzionato perfettamente!

Ho appena aggiunto questo:

        'meta_query' => array(
        array(
            'key' => '_stock_status',
            'value' => 'instock',
            'compare' => '=',
        )
    )      

Grazie!

2 apr 2017 05:19:09
Commenti

Sono felice che abbia funzionato per te. Se contrassegni questo post come una risposta valida alla tua domanda, aiuteresti le statistiche delle "domande senza risposta". ;-D E inoltre, le persone vedranno che potrebbero trovare una soluzione al loro problema qui.

flomei flomei
3 apr 2017 00:09:48