WooCommerce добавляет необлагаемую комиссию, а скидка в корзину рассчитывает неправильную сумму налога - PullRequest
2 голосов
/ 13 марта 2019

У меня есть сайт WooCommerce, где продукты могут иметь необлагаемую комиссию за депозит, могут иметь плату за доставку (7,50 долларов США) и могут иметь скидку. Без применения отрицательной комиссии (скидки) налог рассчитывается правильно. Как только я добавляю отрицательную комиссию, налог включает необлагаемую комиссию за депозит в расчет. Я где-то читал, что отрицательные сборы не рекомендуются. Я также нашел это сообщение , но не знаю, применимо ли это здесь. Есть ли другой способ сделать это в корзине, а также показать в заказах, электронных письмах и т. Д.? К вашему сведению ставка налога составляет 15%. Вот код, который я использую:

function woocommerce_custom_fees( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Loop through cart items
    foreach ( $cart->get_cart() as $cart_item ) {
        $item_data = $cart_item['data'];
        $deposit = $item_data->get_attribute('deposit');
        $delivery = $cart_item['delivery'];

        if ( $deposit ) {
            $total_deposit += $cart_item['quantity'] * $deposit;
        }

        if ( $delivery == 'deliver' ) {
            $total_delivery += $cart_item['quantity'] * 7.5;
        }
    }

    if ( $total_deposit > 0 ) {
        // non-taxable
        $cart->add_fee( 'Deposit', $total_deposit, FALSE );
    }

    if ( $total_delivery > 0 ) {
        // taxable
        $cart->add_fee( 'Delivery', $total_delivery, TRUE );
    }

    //  test $10 discount
    $cart->add_fee( 'Test discount', -10.00);
}
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_fees', 25, 1 );

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

неверная сумма налога с отрицательной комиссией

ОБНОВЛЕНИЕ: я нашел это сообщение Примените скидку к общему содержанию корзины, исключая налоги в WooCommerce , которая говорит, что использование отрицательного сбора приведет к тому, что налоги будут всегда применяться. Есть ли альтернативный метод применения скидок в корзине, кроме использования отрицательных сборов или купонов?

1 Ответ

0 голосов
/ 13 марта 2019
function woocommerce_custom_fees( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;


        // non-taxable
        $cart->add_fee( 'Deposit', 6, FALSE );



        // taxable
        $cart->add_fee( 'Delivery', 7, TRUE );


    //  test $10 discount
    //$cart->add_fee( 'Test discount', -10.00 , FALSE);
}
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_fees', 25, 1 );



add_filter( 'woocommerce_calculated_total', 'discounted_calculated_total', 10, 2 );
function discounted_calculated_total( $total, $cart ){

    $total = $total - 10;

    return $total;
}

Пробовал таким образом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...