Вот пользовательская функция с аргументом, который принимает уникальный идентификатор целого числа продуктов или массив идентификаторов продуктов, и что возвращает количество совпадающих идентификаторов, которые находятся в корзине:
function matched_cart_items($product_ids) {
if(!WC()->cart->is_empty()):
// Initialise the count
$count = 0;
foreach(WC()->cart->get_cart() as $cart_item):
$items_id = $cart_item['product_id'];
// For an array of product IDS
if(is_array($product_ids) && in_array($items_id, $product_ids))
$count++; // incrementing the counted items
// for a unique product ID (integer or string value)
if($product_ids == $items_id)
$count++; // incrementing the counted items
endforeach;
// returning counted items
return $count;
endif;
}
Этот код содержится в файле functions.php вашей активной дочерней темы (активная тема или любой файл плагина).
Код проверен и работает.
ПРИМЕНЕНИЕ:
1) Для ID уникального продукта (целое число):
$product_id = 102;
// Usage as a condition in an if statement
if(0 < matched_cart_items($product_ids)){
echo '<p>There is "'. matched_cart_items($product_ids) .'"matched items in cart</p><br>';
} else {
echo '<p>NO matched items in cart</p><br>';
}
2) Для получения массива идентификаторов продукта:
$product_ids = array(102,107,118);
// Usage as a condition in an if statement
if(0 < matched_cart_items($product_ids)){
echo '<p>There is "'. matched_cart_items($product_ids) .'"matched items in cart</p><br>';
} else {
echo '<p>NO matched items in cart</p><br>';
}
3) Для массива идентификаторов товаров для 3 или более товаров, соответствующих товарам корзины, например:
$product_ids = array(102, 107, 118, 124, 137);
// Usage as a condition in an if statement (for 3 matched items or more)
if(3 <= matched_cart_items($product_ids)){
echo '<p>There is "'. matched_cart_items($product_ids) .'"matched items in cart</p><br>';
} else {
echo '<p>NO matched items in cart</p><br>';
}
Вы должны вызвать функцию несколько раз или переписать его. – Twinfriends
Вы можете проверить все товары, если (woo_in_cart (123)) { // Товар уже зачислен в } –
Мне нужно, чтобы этот способ проверки нескольких продуктов: if (woo_in_cart (123,124,125,126 ...))) { // Товар уже добавлен в корзину } – mysticalghoul