Отключить налоги с платы за корзину в Woocommerce

В woocommerce я добавляю прогрессивную плату на основе категорий продуктов с кодом ниже (из этой ветки ответов), и он работает хорошо:

add_action( 'woocommerce_cart_calculate_fees', 'wc_custom_surcharge', 20, 1 );
function wc_custom_surcharge( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return; // Exit

    ## Your Settings (below) ##

    $categories      = array(19);
    $targeted_states = array('FL');
    $base_rate       = 1;

    $user_state = WC()->customer->get_shipping_state();
    $user_state = empty($user_state) ? WC()->customer->get_billing_state() : $user_state;
    $surcharge  = 0; // Initializing

    // If user is not from florida we exit
    if ( ! in_array( $user_state, $targeted_states ) )
        return; // Exit

    // Loop through cart items
    foreach ( $cart->get_cart() as $cart_item ) {
        if ( has_term( $categories, 'product_cat', $cart_item['product_id'] )  ){
            // calculating fee based on the defined rate and on item quatinty
            $surcharge += $cart_item['quantity'] * $base_rate;
        }
    }

    // Applying the surcharge
    if ( $surcharge > 0 ) {
        $cart->add_fee( __("State Tire Fee", "woocommerce" ), $surcharge, FALSE, '' );
}

Моя проблема в том, что я хочу установить этот сбор как НЕ облагаемый налогом.

Я пробовал несколько кодов и прочее, но просто не понял.

Любая помощь или трек будут по достоинству оценены.

1 ответ

Вы можете решить эту проблему двумя способами на доступных аргументах, включенных в WC_Cart метод add_fee():

1) НЕоблагается налогом : установите плату как"не облагаемую налогом"(установив для третьего аргумента значение false):

$cart->add_fee( __("State Tire Fee", "woocommerce" ), $surcharge, false );

2) Облагается налогом с "нулевой ставкой": установите плату как "облагаемую налогом", используя налоговый класс"нулевой ставки".

В этом случае вам нужно установить (если еще не сделано) нулевую ставку налога в настройках Woocommerce Tx:

Тогда вы сможете установить в WC_Cart метод add_fee() налогооблагаемый сбор с 4-м аргументом, установленным в "Нулевая ставка", которая является налоговым классом, таким образом:

$cart->add_fee( __("State Tire Fee", "woocommerce" ), $surcharge, true, 'zero-rate' );

На тех, кто должен работать.

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