You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce购物车总容积达68m³时显示自定义提示

嗨,我来帮你搞定这个需求!你已经完成了总容积累加的核心部分,接下来只需要加个判断逻辑,就能在总容积达到68m³时显示自定义消息了。下面是具体的实现方案:

第一步:完善总容积计算逻辑

先把你的遍历代码补全,确保能准确算出购物车所有商品的总容积(还要考虑购买数量哦):

// 计算购物车商品总容积
function get_total_cart_volume() {
    $total_volume = 0;
    
    // 遍历购物车中的每个商品
    foreach( WC()->cart->get_cart() as $cart_item ) {
        // 获取商品的自定义容积字段值
        $item_volume = get_post_meta( $cart_item['product_id'], '_item_volume', true );
        
        // 校验字段值是有效数字,避免计算出错
        if( is_numeric( $item_volume ) ) {
            // 累加:单商品容积 × 购买数量
            $total_volume += floatval( $item_volume ) * $cart_item['quantity'];
        }
    }
    
    return $total_volume;
}

第二步:添加消息显示逻辑

接下来写一个函数,判断总容积是否达标,达标就输出自定义提示。我们可以把这个提示挂在购物车和结算页面,让用户能及时看到:

// 显示容积达标提示消息
function show_volume_reached_notice() {
    $total_volume = get_total_cart_volume();
    
    // 判断总容积是否达到或超过68m³
    if( $total_volume >= 68 ) {
        // 用WooCommerce默认的消息样式,也可以自己修改CSS
        echo '<div class="woocommerce-info" style="border-left-color: #28a745;">';
        echo '✅ 太棒了!您的订单总容积已达到40英尺集装箱标准(68m³),可安排整箱发货~';
        echo '</div>';
    }
}

// 挂载到购物车页面顶部
add_action( 'woocommerce_before_cart', 'show_volume_reached_notice' );
// 挂载到结算页面顶部
add_action( 'woocommerce_before_checkout_form', 'show_volume_reached_notice' );

额外提示

如果想要用户修改购物车数量后实时更新提示(不用刷新页面),可以结合WooCommerce的AJAX事件来实现,但如果只是普通场景,上面的代码已经完全够用啦。你可以根据自己的需求调整消息的文字、样式,或者挂载到其他合适的钩子上。

内容的提问来源于stack exchange,提问作者James Donald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:14:33