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

WooCommerce问题:添加负额购物车手续费时如何设置0税费

解决WooCommerce购物车手续费(折扣)被计征税费的问题

你遇到的问题是尽管在add_fee中传入第三个参数0(等价于false),折扣仍被计税,可通过以下方法处理:

方法一:明确使用布尔值false并指定空税类

将代码修改为:

add_action('woocommerce_cart_calculate_fees', function($cart) { 
    $cart->add_fee(__('Popust za vjernost'), -10, false, '');
});

这里直接传入false作为第三个参数(明确标记为非应税),同时第四个参数$tax_class设为空字符串,彻底避免关联任何税类。

方法二:强制清空费用的税费数据

如果方法一无效,可在添加费用后手动重置税费相关属性:

add_action('woocommerce_cart_calculate_fees', function($cart) { 
    $cart->add_fee(__('Popust za vjernost'), -10, false);
    // 遍历费用,找到目标折扣并强制禁用税费
    foreach ($cart->fees as $fee) {
        if ($fee->name === __('Popust za vjernost')) {
            $fee->taxable = 'no';
            $fee->tax_data = array();
            break;
        }
    }
});

这种方式直接修改费用对象的taxable属性为'no',并清空税费数据,确保不会产生税费。

额外排查点

  • 检查是否有其他插件(如税费管理类插件)或自定义代码在woocommerce_cart_calculate_fees钩子之后修改了费用的应税状态
  • 确认WooCommerce设置中,“折扣是否计税”的选项(在WooCommerce > 设置 > 税费 > 税费选项中)是否未强制对折扣计税

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:22:43