Иногда нужно скрыть товары дочерних категорий на странице родительской категории в WooCommerce. Для этого можно использовать следующий сниппет:
function custom_pre_get_posts_query( $query ) {
$children = get_term_children( $query->queried_object_id , 'product_cat' );
$tax = $query->get( 'tax_query');
$tax[] = array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => $children,
'operator' => 'NOT IN',
);
$query->set( 'tax_query', $tax );
}
add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );
Вам нужно будет поместить этот код в файл functions.php вашей темы.
Обновлено: 08.02.2018
Вам помогла эта статья? Оцените!
Добрый день. Код работает с woocommerce 3, спасибо.
Но есть небольшой нюанс: если товар выбран на главной категории и в дочерней, то на главной он не отображается хотя по логике должен.
Возможно ли обновить код с учетом этой особенности?
Работает. Всё отлично. Спасибо!