WooCommerce - скрыть категорию товара из запроса ценового диапазона - PullRequest
0 голосов
/ 27 ноября 2018

В настоящее время я использую функциональность WooCommerce Widget по умолчанию для запроса продуктов по диапазону цен в формате URL: www.mydomain.com/shop/?min_price=50&max_price=100

Я сейчас пытаюсь исключить из этого запроса определенную категорию - пусть слаг будет hidden-category.

Я пробовал использовать следующий код, но проблема в том, что при этом также удаляются все результаты, когда я перехожу на:

www.mydomain.com/category/hidden-category/

function custom_pre_get_posts_query( $q ) {
    $tax_query = (array) $q->get( 'tax_query' );
    $tax_query[] = array(
           'taxonomy' => 'product_cat',
           'field' => 'slug',
           'terms' => array( 'hidden-category' ),
           'operator' => 'NOT IN'
    );
    $q->set( 'tax_query', $tax_query );
}
add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' ); 

1 Ответ

0 голосов
/ 27 ноября 2018

Вот что я закончил:

Первая функция скрывает все в hidden-category из результатов поиска, а вторая скрывает это от запроса ценового диапазона.

//hide sold from search results
function sm_pre_get_posts( $query ) {
   if (  $query->is_search() ) {
       $query->set( 'post_type', array( 'product' ) );
       $tax_query = array(
           array(
               'taxonomy' => 'product_cat',
               'field'   => 'slug',
               'terms'   => 'hidden-category', //slug name of category
               'operator' => 'NOT IN',
           ),
       );
       $query->set( 'tax_query', $tax_query );
    }
}
add_action( 'pre_get_posts', 'sm_pre_get_posts' );

//hide from query
function custom_pre_get_posts_query( $q ) {
if (!$q->is_main_query() || !is_shop() ) return;
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
       'taxonomy' => 'product_cat',
       'field' => 'slug',
       'terms' => array( 'hidden-category' ),
       'operator' => 'NOT IN'
);
$q->set( 'tax_query', $tax_query );
}
add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...