Добавление проблемы с налогом на отрицательную комиссию для пользовательской корзины в woocommerce

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

WC()->cart->add_fee( 'Shipping Discount', -20, false );

Он вычитает 20 из общей суммы, но когда я проверяю порядок в заказах внутри администратора, он также дает скидку на налог в соответствии с установленной мной налоговой ставкой. Есть ли альтернатива добавить скидку

Как я могу это сделать в woocommerce?


person Surjan Raghuwanshi    schedule 12.01.2018    source источник
comment
Да, вы правы, есть ошибка, связанная с отрицательными сборами, когда налоги применяются глобально, даже если они не облагаются налогом или даже если налоговый класс равен нулю…   -  person LoicTheAztec    schedule 14.01.2018
comment
Есть ли альтернатива для этого в woocommerce?   -  person Surjan Raghuwanshi    schedule 14.01.2018
comment
Я дал другой ответ, который работает ...   -  person LoicTheAztec    schedule 14.01.2018


Ответы (1)


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

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

Этот код отобразит правильную общую сумму со скидкой в ​​тележке.

После отправки эта сумма со скидкой будет передана в заказ.

Код:

// Apply a discount globally on cart
add_filter( 'woocommerce_calculated_total', 'discounted_calculated_total', 10, 2 );
function discounted_calculated_total( $total, $cart ){
    $amount_to_discount = $cart->cart_contents_total;
    $percentage = 10; // 10% of discount
    $discounted_amount = $amount_to_discount * $discount / 100;

    $new_total = $total - $discounted_amount;
    return round( $new_total, $cart->dp );
}

Код находится в файле function.php активной дочерней темы (или активной темы).

Проверено и работает.

Вам необходимо создать дополнительный код для отображения суммы скидки (на страницах корзины и оформления заказа и в режиме просмотра заказа) и для передачи ее в заказе в виде метаданных и т. Д.

person LoicTheAztec    schedule 12.01.2018
comment
Он работает, но дает скидку и по налогу. Например, скидка 20, сумма заказа 100 и ставка налога 10%. Теперь после скидки общая сумма должна быть 80, но при расчете налоговой скидки на 20, то есть 2, итого получается 78. - person Surjan Raghuwanshi; 13.01.2018
comment
@SurjanRaghuwanshi Вы пробовали этот новый код ... Будем признательны за обратную связь. Спасибо - person LoicTheAztec; 17.01.2018