Отключить налоги с платы за корзину в Woocommerce - PullRequest
0 голосов
/ 05 декабря 2018

В 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 Ответ

0 голосов
/ 06 декабря 2018

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

1) НЕОблагаемый налогом: Установите комиссию как «Не облагается налогом» (для третьего аргумента установлено значение false) :

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

2) Облагается налогом с «нулевой ставкой»: Установите размер комиссии «облагается налогом» с использованием «Нулевой ставки» налогового класса.

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

enter image description here

enter image description here

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

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

Один из них должен работать.

...