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

WooCommerce境外企业客户税率类设置失效问题求助

解决WooCommerce境外企业用户税率类全程生效问题

原代码的核心问题

  1. 未正确遍历购物车项:直接调用$cart_item['data']但未从钩子参数$cart中获取并循环处理购物车项,实际无法对所有商品生效。
  2. 依赖POST数据不可靠:仅通过$_POST获取billing_company,只有结账提交瞬间有效,后续订单流程无法获取该值。
  3. 未保存税率类到订单项:仅在购物车阶段临时修改税率类,订单创建时未同步保存该设置,导致订单完成后恢复默认税率。

修正后的完整代码

// 1. 在购物车计算阶段正确应用税率类
function apply_conditionally_taxes( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
    if ( empty( $cart->get_cart() ) ) return;

    // 获取当前客户的账单信息
    $customer = WC()->customer;
    $billing_country = $customer->get_billing_country();
    $billing_company = $customer->get_billing_company();

    // 判断条件:有企业名称且账单国家非德国
    $apply_zero_tax = ! empty( $billing_company ) && $billing_country !== 'DE';

    // 遍历所有购物车项设置税率类
    foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
        $product = $cart_item['data'];
        if ( $apply_zero_tax ) {
            $product->set_tax_class( 'Online World' );
        } else {
            // 恢复默认税率类(空值对应后台设置的默认税率)
            $product->set_tax_class( '' );
        }
    }
}
add_action( 'woocommerce_before_calculate_totals', 'apply_conditionally_taxes', 99, 1 );

// 2. 订单创建时将税率类永久保存到订单项
function save_tax_class_to_order_items( $order ) {
    if ( ! $order ) return;

    $billing_country = $order->get_billing_country();
    $billing_company = $order->get_billing_company();
    $apply_zero_tax = ! empty( $billing_company ) && $billing_country !== 'DE';

    // 遍历所有订单项同步税率类
    foreach ( $order->get_items() as $item ) {
        if ( $apply_zero_tax ) {
            $item->set_tax_class( 'Online World' );
        } else {
            $item->set_tax_class( '' );
        }
        $item->save();
    }
}
add_action( 'woocommerce_checkout_create_order', 'save_tax_class_to_order_items', 10, 1 );

关键说明

  • 购物车阶段:通过WC()->customer获取已保存的账单信息,确保地址变更、购物车更新等场景都能实时调整税率类。
  • 订单保存阶段:在订单创建钩子中直接将税率类写入订单项,确保订单生成后,感谢页、发票、订单详情页均使用保存的税率类显示。
  • 请确认后台已创建Online World税率类,并为其设置0%的税率规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:45:16