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

На моем веб-сайте woocommerce я включил Налог в общих настройках WooCommerce.

Я хотел бы отключить налог для определенной роли пользователя программно (с любыми зацепками), из моего магазина, со страницы оформления заказа и из электронного письма заказа.

Как я мог этого добиться?

Спасибо

1 ответ

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

Во-первых, вам нужно установить эту конкретную роль пользователя в worpress. Если это так, допустим, что эта пользовательская роль 'resellers' для моего примера кода.

Во-вторых, вы должны включить в настройках WooCommerce нулевую ставку налога:

введите описание изображения здесь

И тогда для каждой страны вам нужно будет установить эту нулевую ставку налога:

введите описание изображения здесь

Третье - тогда эта функция подключена woocommerce_product_tax_class сделает свое дело:

function zero_rate_for_custom_user_role( $tax_class, $product ) {
    // Getting the current user 
    $current_user = wp_get_current_user();
    $current_user_data = get_userdata($current_user->ID);

    //  <== <== <== <== <== <== <== Here you put your user role slug 
    if ( in_array( 'resellers', $current_user_data->roles ) )
        $tax_class = 'Zero Rate';

    return $tax_class;
}
add_filter( 'woocommerce_product_tax_class', 'zero_rate_for_custom_user_role', 1, 2 );

Вам просто нужно будет поставить вместо "посредников" желаемую роль пользователя.

Этот код находится в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.

Этот код протестирован и полностью функционален.

Ссылка: WooCommerce - Включение класса налога "Нулевая ставка" для некоторых определенных пользовательских ролей.

Другие вопросы по тегам