Получить сумму корзины, включая последний добавленный товар в WooCommerce

В WooCommerce я пытаюсь получить общую сумму корзины при подключении к woocommerce_add_to_cart, Это работает, но сумма возврата корзины — это сумма до последнего добавленного товара. Я хочу, чтобы обновленная сумма могла отображать уведомление о стоимости доставки.

Есть идеи как этого добиться?

Мой текущий код:

function oppsalg_add_to_cart() {
global $woocommerce;

// Limit
$minimum_cart_total = 1000;

// Cart value (Not including the last added item)
$total = WC()->cart->subtotal;

// Comparison
if( $total < $minimum_cart_total ) {
// Display notice
wc_add_notice( sprintf( '<strong>Shipping is free above %s.</strong>'
.'<br />Your total is %s. Perhaps you would like to add more items?',
$minimum_cart_total,
$total ),
'notice' );
}
}
add_action('woocommerce_add_to_cart', 'oppsalg_add_to_cart');

0

Решение

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

add_filter( 'wc_add_to_cart_message_html', 'modify_wc_add_to_cart_message_html', 10, 2 );

function modify_wc_add_to_cart_message_html( $message, $products ) {

$minimum_cart_total = 100;
$cart_total = WC()->cart->cart_contents_total;

if( $cart_total < $minimum_cart_total ) {
$message = sprintf( '<strong>Shipping is free above %s.</strong>'
.'<br />Your total is %s. Perhaps you would like to add more items?',
wc_price( $minimum_cart_total ),
wc_price( $cart_total )
);
}

return $message;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector