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

如何在WooCommerce中让自定义COD附加费排除税费?

在WooCommerce中让自定义COD附加费免缴VAT的解决方案

我来帮你搞定这个COD附加费免增值税的问题!核心其实就在WooCommerce添加费用的核心方法里,咱们直接上实操方案:

1. 修改你的COD附加费代码

首先,WooCommerce的WC_Cart::add_fee()方法有个关键参数taxable——只要把它设为false,就能让这笔附加费彻底免于征税。

假设你原来的代码类似官方示例,是这样的:

add_action( 'woocommerce_cart_calculate_fees', 'add_cod_fee' );
function add_cod_fee() {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;

    $payment_method = WC()->session->get('chosen_payment_method');
    
    if ( $payment_method == 'cod' ) {
        // 默认taxable参数为true,所以会被征税
        WC()->cart->add_fee( 'COD附加费', 5.00 );
    }
}

你只需要调整add_fee的调用,明确设置taxable为false即可,甚至可以加上空税类参数让逻辑更严谨:

add_action( 'woocommerce_cart_calculate_fees', 'add_tax_exempt_cod_fee' );
function add_tax_exempt_cod_fee() {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;

    $payment_method = WC()->session->get('chosen_payment_method');
    
    if ( $payment_method == 'cod' ) {
        // 核心设置:taxable为false,附加费不参与计税
        WC()->cart->add_fee( 'COD附加费', 5.00, false, '' );
    }
}

2. 参数细节说明

  • 'COD附加费':费用的前端显示名称,你可以改成符合自己业务的文案(比如“货到付款服务费”)
  • 5.00:替换成你实际要收取的附加费金额
  • false:最关键的参数,标记该费用为非应税项
  • '':税类参数留空,配合taxable为false,彻底排除任何税类关联

3. 优化:支付方式切换时实时更新费用(可选但实用)

如果用户在结账页面切换支付方式,你可能需要让附加费实时显示/隐藏。可以添加这段JS代码实现:

jQuery(document).ready(function($) {
    $('form.checkout').on('change', 'input[name="payment_method"]', function() {
        $('body').trigger('update_checkout');
    });
});

把这段代码添加到主题的functions.php(用wp_add_inline_script)、主题自定义JS文件,或者通过自定义代码插件插入即可。

4. 验证效果

修改完成后,记得前端测试:

  • 添加商品到购物车
  • 进入结账页面选择COD支付方式
  • 查看订单摘要,确认COD附加费旁没有显示税费,且总金额里没有把这笔费用计入计税基数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:52:30