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

如何在WooCommerce中设置按商品计算的固定金额税类?

解决WooCommerce每件商品固定金额税费的实现方案

核心实现逻辑

绕过WooCommerce后台的百分比税率限制,通过PHP钩子直接按商品数量计算固定税费,并确保在PDF发票中正确显示。

代码实现

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

// 计算并添加每件商品的固定税费
add_action('woocommerce_cart_calculate_fees', 'add_per_item_fixed_ca_tax');
function add_per_item_fixed_ca_tax() {
    if (is_admin() && !defined('DOING_AJAX')) return;

    $fixed_tax = 1.75; // 每件商品固定税费金额
    $total_tax_amount = 0;

    // 遍历购物车商品,按数量累计税费
    foreach (WC()->cart->get_cart() as $item) {
        $total_tax_amount += $fixed_tax * $item['quantity'];
    }

    // 累计税费大于0时,添加到购物车税费项
    if ($total_tax_amount > 0) {
        WC()->cart->add_fee('加州固定商品税', $total_tax_amount, true);
        // 第三个参数true标记为税费,确保被纳入税务统计并在发票中正确归类
    }
}

// 确保PDF发票中正确显示该税费项(适配WooCommerce PDF Invoices & Packing Slips插件)
add_filter('wpo_wcpdf_woocommerce_totals', 'adjust_ca_tax_in_pdf', 10, 2);
function adjust_ca_tax_in_pdf($totals, $order) {
    foreach ($totals as $key => $total) {
        if ($total['label'] === '加州固定商品税') {
            // 可按需修改发票上的显示标签
            $totals[$key]['label'] = '加利福尼亚州固定商品税费';
            $totals[$key]['value'] = wc_price($order->get_fee_total('加州固定商品税'));
        }
    }
    return $totals;
}

关键说明

  • 第一个钩子woocommerce_cart_calculate_fees负责在购物车结算阶段计算并添加税费,标记为税务类型后,WooCommerce会自动将其纳入订单税务总额。
  • 第二个钩子针对主流的PDF发票插件调整显示逻辑,若使用其他发票插件,需替换为对应插件的钩子函数。
  • 可直接修改$fixed_tax的值调整每件商品的税费金额,也可修改标签文本匹配当地政府要求。
  • 代码生效前需清空购物车缓存,测试不同商品数量的税费计算是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:12:12