Показывать промежуточную итоговую сумму по элементу корзины, когда купон применяется в Woocommerce

Моя цель выглядит так:
введите описание изображения здесь

Я попробовал этот код для достижения этого:

add_filter( 'woocommerce_cart_item_subtotal', 'show_coupon_item_subtotal_discount', 100, 3 );
function show_coupon_item_subtotal_discount( $subtotal, $cart_item, $cart_item_key ){
if( $cart_item['line_subtotal'] !== $cart_item['line_total'] ) {
$subtotal = sprintf( '<del>%s</del> <ins>%s<ins>',  wc_price($cart_item['line_subtotal']), wc_price($cart_item['line_total']) );
}
return $subtotal;
}

Но, к сожалению, он показывает неверную цену, как вы видите здесь. Что не так с этим кодом?

введите описание изображения здесь

Это касается этой страницы: keimster.de/kasse

1

Решение

Обновление 2 — Обработка налогов с обесцененного товара в корзине.

Попробуйте следующее, чтобы при применении купона отображалась правильная цена промежуточного итога:

add_filter( 'woocommerce_cart_item_subtotal', 'show_coupon_item_subtotal_discount', 100, 3 );
function show_coupon_item_subtotal_discount( $subtotal, $cart_item, $cart_item_key ){
$line_subtotal = $cart_item['line_subtotal'];
$line_total    = $cart_item['line_total'];
if( $line_subtotal !== $line_total ) {
$subtotal_tax  = $cart_item['line_subtotal_tax'];
$total_tax     = $cart_item['line_tax'];
$incl_taxes    = WC()->cart->display_prices_including_tax() && $cart_item['data']->is_taxable();

$raw_subtotal = $incl_taxes ? $line_subtotal + $subtotal_tax : $line_subtotal;
$raw_total    = $incl_taxes ? $line_total + $total_tax : $line_total;
$subtotal     = sprintf( '<del>%s</del> <ins>%s<ins>',  wc_price($raw_subtotal), wc_price($raw_total) );
}
return $subtotal;
}

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

1

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

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

По вопросам рекламы [email protected]