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

如何在WooCommerce中获取订单税费详情与税率百分比?

获取WooCommerce订单的税率百分比

嘿,这问题我熟!在WooCommerce里要拿到订单的税率百分比其实不难,不用自己瞎算,系统已经给我们准备好了现成的方法。下面分几种场景给你最简便的实现方案:

场景1:订单只有一种税率(最常见情况)

如果你的订单里所有商品都用同一种税率,直接用get_tax_totals()获取税费项,再提取百分比就行:

// 确保$order是有效的WC_Order对象
if ( $order instanceof WC_Order ) {
    // 获取订单的所有税费汇总项
    $tax_totals = $order->get_tax_totals();
    
    // 检查是否有税费数据
    if ( ! empty( $tax_totals ) ) {
        // 取第一个税费项(因为只有一种税率)
        $primary_tax = reset( $tax_totals );
        // 获取纯数字形式的税率百分比(比如返回21)
        $tax_percent = $primary_tax->get_rate_percent();
        // 如果你需要带%符号,直接拼接即可
        $tax_display = $tax_percent . '%';
        
        // 把这个值赋值给你的自定义变量
        $your_custom_variable = $tax_percent;
    }
}

场景2:订单包含多种税率

如果订单里有不同税率的商品(比如部分商品免税,部分收21%),可以遍历所有税费项,分别获取每个税率的百分比:

if ( $order instanceof WC_Order ) {
    $tax_totals = $order->get_tax_totals();
    
    foreach ( $tax_totals as $tax_code => $tax_item ) {
        // 获取税率名称(比如"荷兰增值税")
        $tax_label = $tax_item->get_label();
        // 获取税率百分比
        $tax_percent = $tax_item->get_rate_percent();
        
        // 这里可以根据需求处理每个税率,比如存入数组
        $all_taxes[] = [
            'label' => $tax_label,
            'percent' => $tax_percent . '%'
        ];
    }
}

场景3:获取单个订单项的税率

如果需要针对某个具体商品获取它的税率,可以遍历订单项来获取:

if ( $order instanceof WC_Order ) {
    foreach ( $order->get_items() as $item ) {
        $product = $item->get_product();
        if ( ! $product ) continue;
        
        // 获取商品的税类,再对应到税率
        $tax_class = $product->get_tax_class();
        $tax_rates = WC_Tax::get_rates( $tax_class );
        
        if ( ! empty( $tax_rates ) ) {
            $tax_rate = reset( $tax_rates );
            // 这里的rate就是百分比数字(比如21)
            $item_tax_percent = $tax_rate['rate'];
            echo '商品「' . $item->get_name() . '」的税率:' . $item_tax_percent . '%';
        }
    }
}

小提示

  • 一定要确认$order是有效的WC_Order对象,比如在woocommerce_thankyou钩子里使用时,系统会自动传入订单ID,你可以先用$order = wc_get_order( $order_id )来获取对象。
  • get_rate_percent()方法返回的是纯数字,所以你可以直接用来计算,或者拼接%符号用于显示,非常灵活。

内容的提问来源于stack exchange,提问作者Thijmen van Doorn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 22:32:28