Я пытаюсь получить количество товаров в корзине только из определенной категории товаров в WooCommerce.Подсчет товарных позиций определенной категории
Я делаю сайт для винодельни. Он имеет алкогольную и безалкогольную продукцию. Все вина попадают под главную категорию «вино» или категории 34, со многими подкатегориями и продуктами под ними.
Для любой вещи, подпадающей под эту категорию ... Мне нужно знать, сколько предметов находится в корзине под этой категорией. Если есть шесть бутылок вина, независимо от того, являются ли они одинаковыми идентификаторами продукта или 6 различными идентификаторами продукта. Мне нужно получить это число 6 из категории «вино» или идентификатор категории 34.
Я пробовал это без успеха.
Я очень новичок в WooCommerce и немного новичок в Object Oriented.
Благодаря
function cat_cart_count($cat_name) {
// $cat_name variable is for you normally "tshirts" or "shorts"
global $woocommerce; $cat_count = 0;
// For each product in the cart
foreach(WC()->cart->get_cart() as $cart_item_key => $values) {
$_product_id = $values['product_id']; // product ID
$_product_qty = $values['quantity']; // product quantity
// Getting categories of the product (could be more than one)
$terms = get_the_terms($_product_id, 'product_cat');
// Checking this product has a category
if ($terms && ! is_wp_error($terms)) {
$term_name = array();
// For each category of that product
foreach($terms as $term) {
// Adding the category name to an array
$term_name[] = $term->name;
// if the product has $cat_name category
if (in_array($cat_name, $term_name)) {
// add 1 x product quantity to the count
$cat_count =+ 1 * $_product_qty;
}
}
}
}
Это сработало красиво. Спасибо. –