Отключить налог для пользователей, не вошедших в систему
В 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 answers
Итак, что вам нужно, так это использовать условный wordpress is_user_logged_in()
в пользовательской функции, подключенной init
крючок действия, таким образом:
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 файл вашей активной дочерней темы (или темы) или также в любом файле плагина.
Этот код протестирован и работает.