2016-10-03 33 views
1

在wooCommerce網站上,我將銷售給經銷商經銷商。問題是經銷商免稅,因此我需要一個自定義函數來爲某些客戶角色啓用零稅率(如果WooCommerce自己完成,它不會是最佳的)。WooCommerce - 對某些特定用戶角色啓用「零稅率」稅類

所以我的問題是,我的代碼工作完美,除了我不知道如何實施一個更改來計算零稅,如果客戶是管理員或經銷商。

這裏是我使用的代碼:

function wc_diff_rate_for_user($tax_class, $product) { 

    if (is_user_logged_in() && current_user_can('administrator')) { 
     $tax_class = 'Zero Rate'; 
    } 
    return $tax_class; 
} 

add_filter('woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2); 

我怎麼能修改此代碼,使其工作,爲用戶角色?

感謝

+0

一個簡單的if語句應該適合你。如果$ tax_class =='Zero Rate'則不計算額外稅。否則,請計算額外稅額。也許分享更多的代碼? – mba12

回答

2

嘗試根據你的代碼,我得到第一當前用戶角色,此自定義功能。然後,我在if語句中使用in_array() php條件函數將您的2個目標角色與當前用戶角色進行比較。這樣我可以啓用或不啓用這個「零稅率」稅收級別。

下面是代碼:

function wc_diff_rate_for_user($tax_class, $product) { 
    // Getting the current user 
    $current_user = wp_get_current_user(); 
    $current_user_data = get_userdata($current_user->ID); 

    if (in_array('administrator', $current_user_data->roles) || in_array('reseller', $current_user_data->roles)) 
     $tax_class = 'Zero Rate'; 

    return $tax_class; 
} 
add_filter('woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2); 

此代碼放在你的活躍兒童主題(或主題)的function.php文件或也以任何插件文件。

此代碼已經過測試並且功能完整。

+0

一如既往,你是一個天才男人......沒有你,我會做什麼...... XD –