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

如何禁用WooCommerce组合商品购物车页面的数量修改功能?

解决Combo Offer WooCommerce插件购物车页可修改组合商品数量的问题

问题分析

你使用Combo Offer WooCommerce插件创建固定数量的捆绑产品,已关闭商品页的数量修改选项,但购物车页仍能修改组合内商品的数量。之前添加的代码未生效,核心原因是产品类型的判断逻辑错误——WooCommerce中获取产品类型应通过产品对象的get_type()方法,而非直接读取_product_type元数据,且Combo Offer插件的组合商品在购物车中会带有特定标识,需要结合判断。

修正后的解决方案

方案1:禁用组合商品及子商品的数量修改功能

将以下代码添加到主题的functions.php文件或自定义插件中:

add_filter('woocommerce_cart_item_quantity', 'disable_combo_product_quantity_in_cart', 20, 3);
function disable_combo_product_quantity_in_cart($product_quantity, $cart_item_key, $cart_item) {
    // 判断当前商品是否为Combo Offer组合主产品,或属于组合的子商品
    $is_combo_main = $cart_item['data']->get_type() === 'wooco';
    $is_combo_child = isset($cart_item['wooco_parent_id']);

    if ($is_combo_main || $is_combo_child) {
        // 替换可编辑的数量输入框为隐藏字段,禁止修改
        return '<input type="hidden" name="cart[' . esc_attr($cart_item_key) . '][qty]" value="' . esc_attr($cart_item['quantity']) . '" />';
    }
    return $product_quantity;
}

方案2:隐藏数量调整按钮(可选)

若你的主题显示数量增减按钮,可添加以下CSS彻底隐藏这些可交互元素:

/* 隐藏Combo商品的数量调整按钮区域 */
.cart_item.wooco-product .quantity,
.cart_item[data-wooco-parent] .quantity {
    display: none !important;
}

代码说明

  1. 判断逻辑优化:同时覆盖组合主产品(类型标识为wooco)和组合子商品(带有wooco_parent_id元数据),确保所有关联商品都被限制。
  2. 优先级调整:将钩子优先级设为20,确保代码在插件默认输出之后执行,覆盖原有数量输入框。
  3. CSS补充:针对主题的数量控制按钮做隐藏,避免用户看到可点击的调整元素,彻底阻断修改路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:22:44