Отключить налог для пользователей, не вошедших в систему


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

         } 

}

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

Даже я пробовал "Нулевую ставку", но у меня не получилось.

Любой вид буду признателен за руководство.

Спасибо.

Author: LoicTheAztec, 2017-03-15

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

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

 3
Author: LoicTheAztec, 2017-03-15 09:47:00