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

如何在WooCommerce购物车中为不同商品设置不同附加费用

实现方案

你只需要将原来存储商品ID的索引数组改为关联数组,以产品ID为键、对应附加费金额为值,调用附加费时直接读取对应ID的金额即可,修改后的完整代码如下:

add_action('woocommerce_cart_calculate_fees', 'add_fees_on_ids'); 
function add_fees_on_ids() { 
    if (is_admin() && !defined('DOING_AJAX')) {
        return;
    }
    // 存储对应产品的附加费配置:键为产品ID,值为附加费金额
    $product_fee_config = get_product_fee_config();
    foreach( WC()->cart->get_cart() as $item ) { 
        $product_id = $item['product_id'];
        // 校验当前产品是否配置了附加费
        if (isset($product_fee_config[$product_id])) {
            // 如需按购买数量叠加附加费,可将下方金额改为 $product_fee_config[$product_id] * $item['quantity']
            WC()->cart->add_fee(__('ADDITIONAL FEE:'), $product_fee_config[$product_id]); 
        }
    } 
} 
// 统一维护产品附加费配置
function get_product_fee_config() { 
    return [
        1234 => 10, // 产品ID1234附加费10元,可自行修改金额
        5678 => 15, // 产品ID5678附加费15元,可自行修改金额
        2179 => 5   // 保留你原来配置的产品ID2179的附加费
    ]; 
}
  • 你可以直接在get_product_fee_config函数的返回数组里新增/修改产品ID和对应附加费金额,新增格式为产品ID => 附加费金额,多个配置用英文逗号分隔即可
  • 如果需要同个产品购买多件时叠加收取多份附加费,把add_fee的第二个参数改为$product_fee_config[$product_id] * $item['quantity']即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:15:03