Как получить значение количества шагов товара, добавленного в корзину WooCommerce? - PullRequest
0 голосов
/ 30 октября 2018

Я использовал этот код для фильтрации товаров, добавленных в корзину определенной категории (id = 70).

Моя цель - подсчитать количество пошаговых количеств, добавленных в корзину продукта, относящегося к категории «70».

Пример:

Минимальное количество: 0

Шаг: 100

Я добавил товар в корзину с 300 количествами. Таким образом, номер шага равен 3.

Есть ли способ получить количество пошаговых количеств товара, добавленного в корзину?

// Utility function that count specific product category cart items
add_shortcode('palletcompleto', 'cat_cart_count');
function cat_cart_count( $term_ids ) {
    $quantity = 0; // Initializing

    // Loop through cart items
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        if ( has_product_category( $cart_item['product_id'],  array( 70 ) ) ) {

            $quantity += $cart_item['step_quantity'];
        }
    }
    // Returning category count
    return $quantity == 0 ? false : $quantity;
}

Я использую некоторый код, такой как has_product_category() функция из этой темы:
Установить количество товаров, кратное «х», для продуктов в определенной категории в Woocommerce

// Custom conditional function that checks also for parent product categories
function has_product_category( $product_id, $category_ids ) {
    $term_ids = array(); // Initializing

    // Loop through the current product category terms to get only parent main category term
    foreach( get_the_terms( $product_id, 'product_cat' ) as $term ){
        if( $term->parent > 0 ){
            $term_ids[] = $term->parent; // Set the parent product category
            $term_ids[] = $term->term_id;
        } else {
            $term_ids[] = $term->term_id;
        }
    }
    return array_intersect( $category_ids, array_unique($term_ids) );
}
...