我需要取消某些用户角色的所有税。就我而言,他们是具有客户批发用户角色/帐户的批发客户。我已经完成了大部分任务,但在美国,田纳西州是一个例外。出于某种原因,即使我尝试过使用代码段,TN仍会收税。我不知道是对运输还是对购物车加税。我知道TN有特殊的税收规定,因此可能与它有关。
到目前为止,我已经尝试了2个代码段,但都无法完全正常工作:
1)来自Stackoverflow Role based taxes in woocommerce
add_action( 'woocommerce_before_checkout_billing_form', 'prevent_wholesaler_taxes' );
function prevent_wholesaler_taxes() {
global $woocommerce;
if ( current_user_can( 'customer_net30_wholesale' ) || current_user_can( 'customer_wholesale' ) ) {
$woocommerce->customer->set_is_vat_exempt(true);
} else {
$woocommerce->customer->set_is_vat_exempt(false);
}
}
function wc_diff_rate_for_user( $tax_class, $product ) {
if ( current_user_can( 'customer_net30_wholesale' ) || current_user_can( 'customer_wholesale' ) ) {
$tax_class = 'Zero Rate';
}
return $tax_class;
}
add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );
以下是一些屏幕截图(网站为littlethingsstudio.com)
任何帮助将不胜感激。
答案 0 :(得分:0)
不赞成使用钩子woocommerce_product_tax_class
并将其替换。请尝试以下操作:
// For products and product variations
add_filter( 'woocommerce_product_get_tax_class', 'wc_diff_tax_rate_by_user_role', 10, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'wc_diff_tax_rate_by_user_role', 10, 2 );
function wc_diff_tax_rate_by_user_role( $tax_class, $product ) {
if ( ( current_user_can( 'customer_net30_wholesale' ) || current_user_can( 'customer_wholesale' ) ) ) {
$tax_class = 'Zero Rate';
}
return $tax_class;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试并可以正常运行(甚至是田纳西州)。