Я добавил пользовательский сбор 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()
.
Не думаю, что это лучший способ сделать это, но, по крайней мере, пока это работает ...