You need to enable JavaScript to run this app. WooCommerce 如何仅统计减免税率订单项的累计总金额
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce 如何仅统计减免税率订单项的累计总金额

指定税类商品的合计金额导出方案

前置确认

首先需要确定减免税率对应的唯一匹配标识,二选一即可:

  • 税类slug:在WooCommerce后台「设置 > 税率」页面,找到减免税率对应的税类别名,例如默认减免税类的slug为reduced-rate
  • 税率ID:用你现有的税类遍历代码,打印每个税目的rate_id,对应你场景中减免税总税额(示例中为5+2.5=7.5€)的rate_id即为目标值

核心实现代码

代码逻辑为遍历所有商品订单项,匹配目标税类/税率ID后累加含税总金额:

// 按需修改目标值,二选一即可
// 方式1:按税类slug匹配
$target_tax_class = 'reduced-rate';
// 方式2:按税率ID匹配(多税率叠加场景推荐用这个)
// $target_tax_rate_id = 5;

$reduced_tax_amount_total = 0;
$order = wc_get_order( $order_id );

foreach ( $order->get_items() as $item_id => $item ) {
    // 仅统计商品项,排除运费、附加费等非商品条目
    if ( $item->get_type() !== 'line_item' ) {
        continue;
    }

    // 获取当前订单项的税类、适用税率ID数组
    $current_item_tax_class = $item->get_tax_class();
    $current_item_tax_rates = $item->get_tax_rates();

    // 匹配逻辑按需切换,二选一
    $is_reduced_tax_item = ( $current_item_tax_class === $target_tax_class );
    // 用税率ID匹配则用下方注释的逻辑
    // $is_reduced_tax_item = in_array( $target_tax_rate_id, $current_item_tax_rates );

    if ( $is_reduced_tax_item ) {
        // 累加含税金额 = 商品不含税总计 + 对应税额
        $item_excl_tax_total = $item->get_total();
        $item_tax_total = $item->get_total_tax();
        $reduced_tax_amount_total += ( $item_excl_tax_total + $item_tax_total );
    }
}

// 输出格式化的最终金额(示例场景下会得到157.50€)
echo wc_price( $reduced_tax_amount_total );

调整说明

  • 若需要统计未扣减折扣的原价合计,将代码中的get_total()替换为get_subtotal()、get_total_tax()替换为get_subtotal_tax()即可
  • 多税率叠加的复杂场景,优先使用税率ID匹配,避免同税类下不同税率的商品被误统计
  • 不确定目标标识时,可临时在循环中打印$current_item_tax_class和$current_item_tax_rates,对应商品A、B的信息即可获取正确的匹配值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 00:15:06