我尝试在购物车和结帐页面中显示每个产品的小计价格和销售价格。我已经设法使用以下代码将销售价格 (24TL) 添加到正常价格 (33TL):
/**
* Show sale prices on the Cart and Checkout pages
*/
function my_custom_show_sale_price( $old_display, $cart_item, $cart_item_key ) {
$price_string = $old_display;
$product = $cart_item['data'];
if ( $product ) {
$price_string = $product->get_price_html();
}
return $price_string;
}
add_filter( 'woocommerce_cart_item_price', 'my_custom_show_sale_price', 10, 3 );
add_filter( 'woocommerce_cart_item_subtotal', 'my_custom_show_sale_price', 10, 3 );
不幸的是,上面的代码仅显示购物车或结账页面中一件的产品价格,而不是小计价格(在本例中应为 66TL / 48TL)。
经过一番挖掘后,我发现以下价格过滤器在我的默认 cart.php 文件中将每件商品的价格显示为小计 - 在我使用上面的代码表单将销售价格添加到其中之前,价格以正确的方式显示。
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key );
}
}
知道如何更改第一段代码以将每件商品的产品价格显示为小计吗?