Woocommerce: показывать только продукты на отдельной странице - PullRequest
1 голос
/ 26 января 2020

Я хочу создать независимую страницу под названием «скидки» и показать все предлагаемые товары. У меня есть следующая функция, добавленная в тему моего сына, но она заставляет главную страницу магазина (со всеми товарами) показывать только товары на предложить, как я могу иметь эту функцию, но только на определенной странице c? Мне приходит в голову выполнить «пустой» поиск, чтобы показать все товары со скидкой (используя эту функцию), я иду правильным путем?

add_action( 'woocommerce_product_query', 'onsale_custom' );

function onsale_custom( $q ){

    $product_ids_on_sale = wc_get_product_ids_on_sale();

    $q->set( 'post__in', $product_ids_on_sale );

}

1 Ответ

2 голосов
/ 26 января 2020

У вас должен быть способ различать guish между различными страницами,

Что я сделал, чтобы решить эту проблему, так это создать новую пустую категорию продуктов под слагом discounts (имя пули можно изменить, но следите за этим).

Затем я изменил функцию, которую вы прикрепили, чтобы проверить, просматривается ли эта категория, через is_product_category при указании имени слагаемого категории при вызове этой функции.

Затем задает post__in arg запроса и отменяет установку product_category, чтобы разрешить продажу всех продуктов, поступающих в продажу. просмотрено.

Вот результат:


add_action( 'woocommerce_product_query', 'onsale_custom' );
function onsale_custom( $query ){
        if ( is_product_category('discounts') ) { // My slug name is 'discounts'
            $product_ids_on_sale = wc_get_product_ids_on_sale();
            $query->set( 'post__in', $product_ids_on_sale );
            unset ($query->query_vars['product_cat']);
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...