Условная логика для страниц архива категорий продуктов и связанных с ними отдельных продуктов в Woocommerce - PullRequest
0 голосов
/ 05 октября 2018

Я работаю над сайтом WordPress.При этом я использую логику woocommerce и виджетов.

Моя общая цель состоит в том, чтобы логика виджетов отображала настраиваемые виджеты для каждой родительской категории, ее дочерних элементов (подкатегорий) и всех продуктов под основным родителем.

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

is_product_category (array ('PARENT', 'CHILD1', CHID2 '))

Это работаетидеально;однако, если я нажму на фактический продукт, пользовательский виджет исчезнет.Я надеялся, что этот код будет работать не только для родителей и детей, но и для продуктов под основным родителем.Я так потерян;Я не знаю, как заставить это работать с условными кодами Wordpress.

Буду признателен за любую помощь.

Роберт

1 Ответ

0 голосов
/ 05 октября 2018

Вы можете использовать условный тег Woocommerce is_product() со специальной условной функцией WordPress has_term(), например:

if( is_product() && has_term( array('PARENT', 'CHILD1', CHID2’ ), 'product_cat', get_the_id() ) ){ // Display widget }

Таким образом, вы можете комбинировать обатаким образом:

if( is_product_category( array('PARENT', 'CHILD1', 'CHID2' ) ) || ( is_product() && 
has_term( array('PARENT', 'CHILD1', 'CHID2' ), 'product_cat', get_the_id() ) ) ){ 
    // Display widget
}

Или

$categories = array('PARENT', 'CHILD1', 'CHID2' );

if( is_product_category( $categories ) || ( is_product() && 
has_term( $categories, 'product_cat', get_the_id() ) ) ){ 
    // Display widget
}

Проверено и работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...