Показывать только WooCommerce в стоковой продукции с WP_Query - PullRequest
2 голосов
/ 14 мая 2019

У меня есть этот код, он показывает лучшие продажи, но он также показывает продукт без товара, как мне изменить код. так что показывает только товары со склада? , Спасибо!

$best_sellers_args = array(

    'post_type' => 'product', 

    'meta_key' => 'total_sales',        

    'posts_per_page' => 6,

    'orderby' =>'meta_value_num',

    'order' => 'DESC'

);

$products = new WP_Query( $best_sellers_args );

Ответы [ 2 ]

2 голосов
/ 14 мая 2019

Вы можете добавить параметр мета-значения на складе:

$best_sellers_args = array(

'post_type' => 'product', 

'meta_key' => 'total_sales',        

'posts_per_page' => 6,

'orderby' =>'meta_value_num',

'order' => 'DESC',

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

См. Этот блог для получения дополнительной информации: https://www.gavick.com/blog/wp_query-woocommerce-products

Удачи!

1 голос
/ 15 мая 2019

Начиная с WooCommerce 3, есть 2 способа исключить продукты "Нет в наличии" в ваших WP_Query:

1) Включая налоговый запрос , например:

$products = new WP_Query( array(
    'post_type' => 'product',
    'meta_key' => 'total_sales',
    'posts_per_page' => 6,
    'orderby' =>'meta_value_num',
    'order' => 'DESC',
    'tax_query' => array( array(
        'taxonomy' => 'product_visibility',
        'field'    => 'name',
        'terms'    => array('outofstock'),
        'operator' => 'NOT IN'
    ) ),
) );

2) Включая мета-запрос , например:

$products = new WP_Query( array(
    'post_type' => 'product',
    'meta_key' => 'total_sales',
    'posts_per_page' => 6,
    'orderby' =>'meta_value_num',
    'order' => 'DESC',
    'meta_query' => array( array(
        'key'     => '_stock_status',
        'value'   => 'outofstock',
        'compare' => '!=',
    ) ),
) );

Оба способа работают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...