Самый популярный плагин электронной коммерции WooCommerce имеет совсем мало настроек для продвинутых владельцев магазинов. То есть, если вам нужно что-либо нестандартное, реализовать это нажатием кнопки или чекбокса не получится. Но(!) никто не говорит, что это невозможно. Вам просто нужна помощь программиста.

Очередное обращение от клиента было именно таким. Клиент не нашел, где в Вукомерсе можно отключить отображение товаров из конечной категории в основной категории.
Перефразируем задачу: не показывать товары из субкатегории в родительской категории.
А если еще точнее: отображать товары исключительно в своей категории.

По вполне понятным причинам стандартная «Настройка внешнего вида» здесь не годится. Запрос нестандартный и требует нестандартного решения.

В интернете вы найдете несколько решений похожих задач с помощью хука pre_get_posts, однако работают они далеко не у всех.

Итак, чтобы запретить показ товаров из подкатегорий в главной категории, добавьте этот код (источник) в конец файла functions.php вашей дочерней темы:

// Speedplus.com.ua HIDE SUBCATEGORIES PRODUCTS
add_action('parse_tax_query', 'speedplus_filter_subcat_goods'); 
function speedplus_filter_subcat_goods( $query ) {
    if ( is_tax( 'product_cat' ) ) {
        $queried_object = get_queried_object();
        $child_cats     = (array) get_term_children( $queried_object->term_id, 'product_cat' );
        if ( ! $query->is_admin ) //exclude the posts in child categories
        {
            $query->tax_query->queries[] = [
                'taxonomy' => 'product_cat',
                'field'    => 'term_id',
                'terms'    => array_merge( $child_cats ),
                'operator' => 'NOT IN'
            ];
        }
    }
}

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *