問題描述
在我的 woocommerce 網站中,我在 WooCommerce 的一般設置中啟用了稅.
我想以編程方式(使用任何鉤子)從我的商店、結帳頁面和訂單電子郵件中禁用特定用戶角色的稅收.
我怎樣才能做到這一點?
謝謝
2020 更新
<塊引用>您不能以編程方式為特定用戶角色禁用 WooCommerce 稅,但您可以為特定用戶角色申請零稅率.
首先您需要在 worpress 中設置這個特定的用戶角色.如果是這種情況,假設此自定義用戶角色是我的代碼示例的 'resellers'
.
其次,您必須在 WooCommerce 設置中啟用零稅率:
然后對于每個國家/地區,您必須設置此零稅率:
第三 - 然后這個鉤子函數會起作用:
更新 - 從 WooCommerce 3 開始使用以下內容:
函數 zero_rate_for_custom_user_role( $tax_class, $product ) {//獲取當前用戶$current_user = wp_get_current_user();$current_user_data = get_userdata($current_user->ID);//<== <== <== <== <== <== <== 在這里放置您的用戶角色 slugif ( in_array( 'resellers', $current_user_data->roles ) )$tax_class = '零稅率';返回 $tax_class;}add_filter('woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 10, 2);add_filter('woocommerce_product_variation_get_tax_class', 'wc_diff_rate_for_user', 10, 2);
在 WooCommerce 版本 3 之前使用以下內容:
函數 zero_rate_for_custom_user_role( $tax_class, $product ) {//獲取當前用戶$current_user = wp_get_current_user();$current_user_data = get_userdata($current_user->ID);//<== <== <== <== <== <== <== 在這里放置您的用戶角色 slugif ( in_array( 'resellers', $current_user_data->roles ) )$tax_class = '零稅率';返回 $tax_class;}add_filter('woocommerce_product_tax_class', 'zero_rate_for_custom_user_role', 10, 2 );
<塊引用>
您只需要輸入您想要的用戶角色而不是經銷商".
此代碼位于活動子主題(或主題)的 functions.php 文件或任何插件文件中.
此代碼經過測試且功能齊全.
參考:WooCommerce- 啟用零利率";某些特定用戶角色的稅級
In my woocommerce web site, I have enable Tax in general WooCommerce settings.
I would like to disable tax for a specific user role programmatically ( with any hooks ), from my shop, checkout page and from order email.
How could I achieve this?
Thanks
2020 update
You can't disable WooCommerce tax for a specific user role programmatically, but you can apply for a specific user role a zero tax rate.
First you need to have this specific user role set in worpress. If it's the case, let say that this custom user role is 'resellers'
for my code example.
Second, you have to enable in WooCommerce settings a zero tax rate:
And then for each country, you will have to set this zero tax rate:
Third - Then this hooked function will do the trick:
Update - Since WooCommerce 3 use the following:
function zero_rate_for_custom_user_role( $tax_class, $product ) {
// Getting the current user
$current_user = wp_get_current_user();
$current_user_data = get_userdata($current_user->ID);
// <== <== <== <== <== <== <== Here you put your user role slug
if ( in_array( 'resellers', $current_user_data->roles ) )
$tax_class = 'Zero Rate';
return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 10, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'wc_diff_rate_for_user', 10, 2 );
Before WooCommerce version 3 use the following:
function zero_rate_for_custom_user_role( $tax_class, $product ) {
// Getting the current user
$current_user = wp_get_current_user();
$current_user_data = get_userdata($current_user->ID);
// <== <== <== <== <== <== <== Here you put your user role slug
if ( in_array( 'resellers', $current_user_data->roles ) )
$tax_class = 'Zero Rate';
return $tax_class;
}
add_filter( 'woocommerce_product_tax_class', 'zero_rate_for_custom_user_role', 10, 2 );
You will just need to put instead of 'resellers' your desired user role slug.
This code goes in functions.php file of your active child theme (or theme) or also in any plugin file.
This code is tested and fully functional.
Reference: WooCommerce - Enabling "Zero rate" tax class to some specific user roles
這篇關于以編程方式為特定用戶角色禁用稅收的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!