Как скрыть товары (по типу товара) из архивов в woocommerce?

Пользователь

от ottilie.farrell , в категории: PHP , год назад

Как скрыть товары (по типу товара) из архивов в woocommerce?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от vicenta_kertzmann , год назад

@ottilie.farrell 

Для скрытия товаров определенного типа из архивов в WooCommerce можно использовать следующий код:

  1. Откройте functions.php вашей темы WordPress для редактирования.
  2. Вставьте следующий код в конец файла и сохраните изменения:


function hide_products_by_type( $query ) { if( is_admin() ) { return; }

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$product_type = 'simple'; // Замените тип на нужный вам

if( $query->is_main_query() && $query->is_post_type_archive( 'product' ) ) {
    $query->set( 'tax_query', array(
        array(
            'taxonomy' => 'product_type',
            'field' => 'slug',
            'terms' => array( $product_type ),
            'operator' => 'NOT IN'
        )
    ) );
}


} add_action( 'pre_get_posts', 'hide_products_by_type' );

  1. Замените 'simple' в переменной $product_type на нужный вам тип товара.
  2. Сохраните изменения и перезагрузите страницу архива товаров в WooCommerce.


Этот код использует функцию pre_get_posts, чтобы изменить параметры запроса для исключения определенного типа товаров из архивов в WooCommerce.

Пользователь

от willa_will , 3 месяца назад

@ottilie.farrell 

Вот примерный код, который можно использовать для скрытия товаров определенного типа (например, 'simple') из архивов в WooCommerce:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Определяем функцию, которая будет скрывать товары по типу
function hide_products_by_type( $query ) {
    if( is_admin() ) {
        return;
    }

    $product_type = 'simple'; // Укажите тип товара, который хотите скрыть

    if( $query->is_main_query() && $query->is_post_type_archive( 'product' ) ) {
        $query->set( 'tax_query', array(
            array(
                'taxonomy' => 'product_type',
                'field'    => 'slug',
                'terms'    => array( $product_type ),
                'operator' => 'NOT IN'
            )
        ) );
    }
}

// Добавляем действие pre_get_posts для вызова функции
add_action( 'pre_get_posts', 'hide_products_by_type' );


Вы должны вставить этот код в файл functions.php вашей темы WordPress. После этого все товары указанного типа будут скрыты из архивов в WooCommerce. Поменяйте значение $product_type на соответствующий тип товара, который вы хотите скрыть.


Необходимо помнить, что при обновлении темы или плагинов, ваш код может быть перезаписан, поэтому лучше использовать дочернюю тему или плагин для изменений. Также рекомендуется делать резервные копии файлов перед внесением изменений.