在 Woocommerce 中应用优惠券时显示被击中的购物车项目小计

Display striked cart item subtotal when coupon is applied in 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

更新 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 文件。已测试并有效。