Пожалуйста, заранее простите меня, если это глупый вопрос.
Итак, в настоящее время я проверяю все товары в корзине WooCommerce.
Если в корзине есть продукт из категории «Практика», а в корзине нет продуктов с категорией «Соответствие требованиям», я хочу показать сообщение 1.
Если в корзине есть категории «Практика» и «Квалификация», я хочу показать сообщение 2.
Прямо сейчас вот мой код:
<?php
$category_checks = array();
// check each cart item for our category
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
$practice = false;
$qualifying = false;
if( has_term( 'practice', 'product_cat', $product->id ) && ! has_term( 'qualifying', 'product_cat', $product->id ) ) : ?>
<?php $practice = true; ?>
Upsell goes here (Message 1)
<?php elseif( has_term( 'practice', 'product_cat', $product->id ) && has_term( 'qualifying', 'product_cat', $product->id ) ) : ?>
<?php $qualifying = true; ?>
No need to upsell (Message 2)
<?php endif; ?>
<?php
array_push( $category_checks, $practice, $qualifying );
}
if ( ! in_array( false, $category_checks, true ) ) {
}
?>
У меня есть два продукта, каждый из которых имеет категорию «Практика», а другой - категорию «Квалификация».
Когда я добавляю эти два продукта в корзину и пробую использовать этот код, я постоянно получаю Сообщение 1, хотя я говорю, что в нем нет (!) Термина «соответствующий».
Что я здесь делаю не так?