如何获取购物车中自定义属性值的总和?

How to get sum of custom attribute values in cart?

我的一些产品具有自定义属性 pa_ves-g。在购物车总数中,我需要获得购物车中所有产品的全部数量。

我找到了这个重量代码:

function myprefix_cart_extra_info() {
    global $woocommerce;
    echo '<div class="cart-extra-info">';
    echo '<p class="total-weight">' . __('Total weight', 'woocommerce');
    echo ' ' . $woocommerce->cart->cart_contents_weight . ' ' . 'kg';
    echo '</p>';
    echo '</div>';
}

那么如何为 pa_ves-g 做同样的事情?

谢谢。

首先,您使用的是旧的(有效的)购物车语法:您不再需要 global woocommerce; 如果改为使用 $woocommerce->cart 你使用 WC()->cart 实际语法。

使用该代码获取购物车总体积 体积 属性的值:

function myprefix_cart_extra_info() {
    $volume = 0;

    // Iterating though each item in cart
    $cart_items = WC()->cart->get_cart();
    foreach( $cart_items as $cart_item ){
        $item_id = $cart_item['product_id'];
        $terms = get_the_terms( $item_id , 'pa_ves-g');
            foreach($terms as $key => $term)
                if(!empty($term->name)) $volume += $term->name;
        }

    echo '<div class="cart-extra-info">';
    echo '<p class="total-weight">' . __('Total volume', 'woocommerce');
    echo ' ' . $volume . ' ' . 'm3';
    echo '</p>';
    echo '</div>';
}

这会进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。

此代码已经过测试并且有效。