Отключить налог для не авторизованных пользователей

В 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);

}

}

В конце я просто хочу отключить любые налоговые ставки для не авторизованного пользователя.

даже я пробовал «Нулевой курс», но у меня ничего не вышло.

Любое руководство будет оценено.

Благодарю.

2

Решение

Так что вам нужно использовать 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 вашей активной дочерней темы (или темы) или также в любом файле плагина.

Этот код протестирован и работает.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]