根据WooCommerce(包括田纳西州)中的用户角色消除所有税收

问题描述 投票:0回答:1

我需要消除某些用户角色的所有税费。就我而言,他们是具有客户批发用户角色/帐户的批发客户。我已经把它用于大部分工作,但在美国,田纳西州是一个例外。出于某种原因,即使我已经尝试过的代码片段,TN仍然会收税。我不知道税收是否适用于运费或购物车总额。我知道TN有特殊的税收规则,所以它可能与它有关。

(网站是littlethingsstudio.com

到目前为止,我已经尝试了两个代码片段,两个代码片段都不能完全运行:

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);
     }
}

2)和WooCommerce docs

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

Screenshots showing tax for different states in the US

  • 我正在使用Snippets插件来激活/停用代码片段
  • WordPress 5.1.1
  • Flatsome主题3.6.2
  • 呜3.6.1
  • WooCommerce动态定价3.1.13(根据角色更改产品价格)
  • WooCommerce Stripe Gateway 4.1.16(用于处理付款)
  • WooCommerce Services 1.19.0(用于自动税务计算,运输标签打印和更顺畅的付款设置)

任何帮助将不胜感激。

php wordpress woocommerce user-roles tax
1个回答
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文件中。经过测试和工作(即使是田纳西州)。

© www.soinside.com 2019 - 2024. All rights reserved.