Intereting Posts
Получить ранее посещенный идентификатор страницы Не удается правильно получить user_meta Страница поддержки WordPress Admin – расширенные параметры? Заменить каталог шаблонов шаблонов с дочерней темой? Сортировка / Фильтр сообщений от front-end в блоге WordPress Запросить комментарии с непустым значением 'author_url' на экране комментариев администратора Получение настроек, сохраненных два раза на странице настроек со вкладкой Динамические страницы для связанных категорий и контента Создать таксономию только для администраторов? Вывод из выпадающего списка таксономии уровня Случайные изображения без дубликатов (галерея ACF) Исключение пользователей определенной роли на странице пользователей Изменение частоты отправки сообщений по часовой стрелке Почему я не могу получить доступ к файлам / каталогам за пределами wordpress Тема не является многоязычной. Как я могу добавить второй язык на сайт?

WooCommerce: отображать категории продуктов для выражения IF

В зависимости от категории продукта у меня разные данные для отображения на странице категории. Я получаю свой ID категории следующим образом:

 <?php global $post; $terms = get_the_terms( $post->ID, 'product_cat' ); foreach ($terms as $term) { $product_cat_id = $term->term_id; break; } if ($product_cat_id == "6") { echo "aaa"; } elseif ($product_cat_id == "7") { echo "bbb"; } ?> 

Но мне нужно отображать разные данные, когда продукт находится в двух категориях, и он не работает.

 echo $product_cat_id; 

Он признает только одну категорию. Как мне распознать два и сделать IF оператор для продукта, который находится в категории 6 AND 7?

Solutions Collecting From Web of "WooCommerce: отображать категории продуктов для выражения IF"

Ваш $product_cat_id – это array() всех ваших категорий, и похоже, что вы используете только оператор if вне массива, чтобы проверить идентификатор категории. Вместо этого вы должны запустить его внутри цикла foreach . Это не проверено, но должно выглядеть примерно так:

 <?php global $post; $terms = get_the_terms( $post->ID, 'product_cat' ); foreach ( $terms as $term ) { $product_cat_id = $term->term_id; break; } foreach ( $product_cat_id as $key => $value ) { if ( $value == "6" ) { echo "aaa"; } if ( $value == "7" ) { echo "bbb"; } } ?> 

Попробуйте этот код

  <?php global $post; $terms = get_the_terms( $post->ID, 'product_cat' ); foreach ($terms as $term) { $product_cat_id = $term->term_id; break; } if ($product_cat_id == "6" && $product_cat_id == "7" ) { echo "aaabbb"; } else if ($product_cat_id == "6" ) { echo "aaa"; } else if ($product_cat_id == "7") { echo "bbb"; } ?>