У вас должен быть способ различать 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']);
}
}