In WooCommerce, I'm trying to apply set_is_vat_exempt()
method for customer and guest user.
For logged customer it is working fine. Can anyone suggest how can I do it?
One issue could be like as the user is not logged in so may be $woocommerce->customer
could not enable it.
Here's my code:
$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);
}
}
At the end, I just want to disable any tax rates for non-logged in user.
even I tried "Zero rate" but doesn't worked for me.
Any kind of guidance would be appreciated.
Thanks.
So what you need is to use the wordpress conditional is_user_logged_in()
in a custom function hooked in init
action hook, this way:
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);
}
}
The Code goes in function.php file of your active child theme (or theme) or also in any plugin file.
This code is tested and works.