禁用未登录用户的税

时间:2017-03-15 06:48:21

标签: php wordpress woocommerce cart tax

在WooCommerce中,我正在尝试为客户和来宾用户应用set_is_vat_exempt()方法。

对于已登录的客户,它工作正常。任何人都可以建议我该怎么做?

一个问题可能是因为用户未登录,因此可能$woocommerce->customer无法启用它。

这是我的代码:

$bilalId = get_current_user_id();

add_filter( 'woocommerce_cart_totals_order_total_html', 'wc_cart_totals_order_total_html_bn');

function wc_cart_totals_order_total_html_bn() {
    global $woocommerce;

     if( current_user_can('customer' || $bilalId == 0) ) {

              $woocommerce->customer->set_is_vat_exempt(true);

         } 

}

最后,我只想禁用未登录用户的任何税率。

即使我尝试了“零利率”,但对我没有用。

任何形式的指导都将受到赞赏。

感谢。

1 个答案:

答案 0 :(得分:3)

所以你需要的是在一个隐藏在 init 动作钩子中的自定义函数中使用wordpress条件is_user_logged_in(),这样:

add_action( 'init', 'wc_tax_exempt_unlogged' );
function wc_tax_exempt_unlogged() {

    // Getting user data for logged users
    if( is_user_logged_in() ){
        $current_user = wp_get_current_user();
        $current_user_id = $current_user->ID;
        $current_user_roles = $current_user->roles;
        $bilal_id = 0;
    }

    // Exempting of VAT non logged users, customers and the main admin ID (you)
    if( ! is_user_logged_in() || in_array( 'customer', $current_user_roles ) || $bilal_id == $current_user_id ){
        WC()->customer->set_is_vat_exempt(true);
    }
}

代码进入活动子主题(或主题)的function.php文件或任何插件文件中。

此代码经过测试并有效。