Установите «Нулевой налог» для промежуточной суммы менее $ 110 - Woocommerce - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь настроить без налога для заказов на сумму до 110 .

Я наткнулся на эту тему Установите различные налоговые ставки, условно основанные на ценах товаров в корзине в Woocommerce , и попробовал, но, похоже, не работает, когда я добавляю его в functions.php - Возможно, потому что некоторые из коды устарели?

Вот пересмотренный код:

add_action( 'woocommerce_before_calculate_totals', 'change_cart_items_prices', 10, 1 );
function change_cart_items_prices( $cart ) {

  if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;

  if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
    return;

foreach ( $cart->get_cart() as $cart_item ) {
    // get product price
    $price = $cart_item['data']->get_price();

    // Set conditionaly based on price the tax class
    if ( $price < 111 )
        $cart_item['data']->set_tax_class( 'zero-rate' ); // below 111
    if ( $price >= 111 )
        $cart_item['data']->set_tax_class( 'standard' ); // Equal above 110
  }
}

Я полагаю, что настройки налога по стандартным и нулевым ставкам в Woo commerce> Настройки> Налог настроены правильно.

1 Ответ

0 голосов
/ 13 июня 2019

Получил работу, используя этот код:

add_action( 'woocommerce_before_calculate_totals', 'apply_conditionally_zero_tax_rate', 10, 1 );
function apply_conditionally_zero_tax_rate( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;

if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
    return;

$defined_amount = 110;
$subtotal = 0;

// Loop through cart items (1st loop - get cart subtotal)
foreach ( $cart->get_cart() as $cart_item ) {
    $subtotal += $cart_item['line_total'];
}

// Targeting cart subtotal up to the "defined amount"
if ( $subtotal > $defined_amount )
    return;

// Loop through cart items (2nd loop - Change tax rate)
foreach ( $cart->get_cart() as $cart_item ) {
    $cart_item['data']->set_tax_class( 'zero-rate' );
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...