Исключить «скрытые» запрашиваемые продукты из карусели в WooCommerce 3+ - PullRequest
4 голосов
/ 25 апреля 2019

У меня есть плагин для карусели, который делает разные вещи и показывает только опубликованные продукты:

$common_args = array(
            'post_type' => 'product',
            'posts_per_page' => !empty($posts_per_page) ? intval($posts_per_page) : 4,
            'post_status' => 'publish',
            'ignore_sticky_posts' => true,
            'no_found_rows' => true,

        );

Но мне нужно, чтобы исключить «скрытые» продукты, которые технически все еще публикуются, просто не видны. В качестве альтернативы я мог бы использовать его, если бы он исключал продукты, относящиеся к определенным категориям (все мои скрытые продукты относятся к двум конкретным категориям).

Как я могу сделать что-нибудь из этого, пожалуйста?

1 Ответ

4 голосов
/ 25 апреля 2019

Начиная с Woocommerce 3, видимость продукта обрабатывается таксономией product_visibility для термина exclude-from-catalog, поэтому вам нужно добавить налоговый запрос следующим образом:

$common_args = array(
    'post_type'           => 'product',
    'posts_per_page'      => !empty($posts_per_page) ? intval($posts_per_page) : 4,
    'post_status'         => 'publish',
    'ignore_sticky_posts' => true,
    'no_found_rows'       => true,
    'tax_query'           => array( array(
        'taxonomy'  => 'product_visibility',
        'terms'     => array('exclude-from-catalog'),
        'field'     => 'name',
        'operator'  => 'NOT IN',
    ) ),
);

Это должно работать.Протестировал этот массив аргументов с помощью функции WordPress get_post() (работает) .


Related: Изменения базы данных для продуктов в woocommerce 3

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