На самом деле я пытаюсь решить проблему, которую не могу решить. Я уже поднял вопрос, но думаю, что я, вероятно, был неясен, так что, надеюсь, немного яснее здесь.
Я изменил мини-корзину, чтобы отображать разные изображения для каждого элемента, добавленного в корзину. Это для имитации добавления бутылок в «кейс». Смотрите изображение, чтобы показать в действии, и вот код, который заставляет его работать.
<?php
if(WC()->cart->get_cart_contents_count() == 0){
echo '<img src="http://example.com/wp-content/uploads/2017/…/empty-case.png" alt="icon" />';
} elseif (WC()->cart->get_cart_contents_count() == 1){
echo '<img src="http://example.com/…/uploads/2017/06/case-with-1-bottle.png" alt="icon" />';
elseif (WC()->cart->get_cart_contents_count() == 2){
echo '<img src="http://example.com/…/uploa…/2017/06/case-with-2-bottles.png" alt="icon" />';
Это продолжается примерно до 60 бутылок или около того, и работает нормально.
Проблема в том, что он основан на общей сумме корзины, и в магазине есть другие товары, которые я не хочу включить в это. Я хочу это только для категории продуктов «одиночные бутылки», но не для «футболок» (например).
В идеале я хотел бы просто добавить что-то, чтобы исключить другие категории, но я не уверен, что нужно сделать.
Есть идеи или предложения?
Вы можете сделать расчет для вашей категории товаров «отдельные бутылки» следующим образом:
<?php
// Set HERE your product category
$category = 'single bottles';
$beer_count = 0;
foreach ( WC()->cart->get_cart() as $cart_item ){
if( has_term( $category, 'product_cat', $cart_item['data']->get_id() ) ){
$beer_count += $cart_item['quantity'];
}
}
if ( $beer_count == 0 ) {
echo '<img src="http://example.com/wp-content/uploads/2017/…/empty-case.png" alt="icon" />';
} elseif ( $beer_count == 1 ) {
echo '<img src="http://example.com/…/uploads/2017/06/case-with-1-bottle.png" alt="icon" />';
} elseif ( $beer_count == 2 ) {
echo '<img src="http://example.com/…/uploa…/2017/06/case-with-2-bottles.png" alt="icon" />';
}
Это должно работать …
Других решений пока нет …