我正在研究一种解决方案,可以根据客户所在的国家/地区以及是否可以提供增值税ID来更改税种。
该商店位于欧盟,为B2B和B2C提供服务。 因此,对于所有可以提供VAT-ID的欧盟公司而言,除非原产国相同,否则不收税。 对于所有无法提供VAT-ID的客户,我们都会加收我们的地方税。 等等...
我发现的所有解决方案都仅与购物车交互,但是当我以编程方式创建订单时,我需要另一个解决方案。
在创建订单时是否有办法(可能是一个挂钩)更改 tax_class ?
为了进行测试,我尝试添加此方法,但是没有用。它会触发过滤器,但不会更改订单中的税种。
function wc_change_tax_class( $tax_class, $product ) {
$tax_class = 'Zero rate';
return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'wc_change_tax_class', 1, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'wc_change_tax_class', 1, 2 );
我还在创建订单但功能相同的函数中尝试了此方法。没事
$woocommerce->customer->set_is_vat_exempt( true );
感谢您的帮助!
答案 0 :(得分:2)
经过数小时的查找原因,解决方案非常简单:
我发现所有解决方案都建议写'Zero rate'
或'Zero Rate'
。取决于Woocommerce设置中提供的名称。但是对我来说,只有用'zero-rate'
这样写,它才起作用。因此,更改表类名称,并删除woocommerce设置中的所有空格,当然也要删除变量中的所有空格。
$tax_class = 'zero-rate';
希望可以节省别人的时间!