Почему моя таможенная плата WooCommerce исчезает, когда я звоню get_fee, но все равно включается в общую сумму? - PullRequest
0 голосов
/ 01 мая 2019

Я добавил пользовательский сбор WooCommerce в зависимости от стоимости корзины, и я пытаюсь получить этот сбор на пользовательской странице цитаты, но когда я вызываю функцию WC()->cart->get_fees(), она всегда пуста, даже если в общую стоимость входит мой пользовательский сбор. .

Вот как я добавил свой таможенный сбор:

add_action('woocommerce_cart_calculate_fees' , 'custom_discount');
function custom_discount( ){
    if( WC()->cart->subtotal >= 150 ):
        $discount = WC()->cart->subtotal * -0.03;
        WC()->cart->add_fee( 'Remise au volume : 3%', $discount);
    endif;
}

На моей корзине и странице оформления заказа все в порядке, но я создал страницу-quote.php, чтобы распечатать предложение, и даже если wc_cart_totals_order_total_html() дает мне цену со скидкой, функция WC()->cart->get_fees() всегда давая мне пустой массив ...

Связанная проблема не очень полезна: Заказная плата за WooCommerce исчезает при оформлении заказа

UPDATE

Когда я делаю простой print_r( WC()->cart ), чтобы посмотреть, что внутри, я вижу свои сборы в массиве [total]. Я не знаю, что происходит с этими сборами ...

[totals:protected] => Array
        (
            [subtotal] => 6000.00
            [subtotal_tax] => 0
            [shipping_total] => 30.00
            [shipping_tax] => 0
            [shipping_taxes] => Array
                (
                )

            [discount_total] => 0
            [discount_tax] => 0
            [cart_contents_total] => 6000.00
            [cart_contents_tax] => 0
            [cart_contents_taxes] => Array
                (
                )

            [fee_total] => -900.00
            [fee_tax] => 0
            [fee_taxes] => Array
                (
                )

            [total] => 5130.00
            [total_tax] => 0
        )

ОБНОВЛЕНИЕ 2

Когда я добавляю хук do_action('woocommerce_cart_calculate_fees') сразу после do_action('get_header') моего шаблона страницы, я вижу комиссию в моем WC()->cart->get_fees().

Не думаю, что это лучший способ сделать это, но, по крайней мере, пока это работает ...

...