WooCommerce:在购物车中的产品名称下移动价格和小计
WooCommerce: Move price and subtotal under product name in cart
我想在产品名称的 table 单元格中显示购物车商品的价格和小计。原因是,我需要手机上的另一个视图。对于桌面视口,价格和小计的 table 单元格应该保留。所以我想为移动设备添加一个额外的版本并将其隐藏在桌面上。
我找到了钩子woocommerce_after_cart_item_name
,我知道如何在产品名称下面添加内容。
这是我试过的代码:(目前还没有成功)
add_filter('woocommerce_after_cart_item_name','copy_cart_product_price',10,3);
function copy_cart_product_price($cart_item, $cart_item_key){
$cart_price_subtotal = sprintf(
'<p class="cart-price">6,90€</p>',
'<p class="cart-subtotal">13,80€</p>'
);
$cart_item .= $cart_price_subtotal;
return $cart_item;
}
我的问题是,我不知道如何获得价格。
我想我必须使用这两个过滤器:
适用价格:
echo apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); // PHPCS: XSS ok.
小计:
echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); // PHPCS: XSS ok.
但是我如何 show/use 这些过滤器与我的代码段?
如果购物车中的一件商品有 2 件或更多件,有没有办法只显示小计?
我相信你是这个意思?在代码中添加注释的解释
function action_woocommerce_after_cart_item_name( $cart_item, $cart_item_key ) {
// Price
$price = $cart_item['data']->get_price();
// Line subtotal
$subtotal = $cart_item['line_subtotal'];
// Quantity
$quantity = $cart_item['quantity'];
echo '<p class="cart-price">' . wc_price( $price ) . '</p>';
if ( $quantity >= 2 ) {
echo '<p class="cart-subtotal">' . wc_price( $subtotal ) . '</p>';
}
}
add_action( 'woocommerce_after_cart_item_name', 'action_woocommerce_after_cart_item_name', 10, 2 );
我想在产品名称的 table 单元格中显示购物车商品的价格和小计。原因是,我需要手机上的另一个视图。对于桌面视口,价格和小计的 table 单元格应该保留。所以我想为移动设备添加一个额外的版本并将其隐藏在桌面上。
我找到了钩子woocommerce_after_cart_item_name
,我知道如何在产品名称下面添加内容。
这是我试过的代码:(目前还没有成功)
add_filter('woocommerce_after_cart_item_name','copy_cart_product_price',10,3);
function copy_cart_product_price($cart_item, $cart_item_key){
$cart_price_subtotal = sprintf(
'<p class="cart-price">6,90€</p>',
'<p class="cart-subtotal">13,80€</p>'
);
$cart_item .= $cart_price_subtotal;
return $cart_item;
}
我的问题是,我不知道如何获得价格。
我想我必须使用这两个过滤器:
适用价格:
echo apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); // PHPCS: XSS ok.
小计:
echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); // PHPCS: XSS ok.
但是我如何 show/use 这些过滤器与我的代码段?
如果购物车中的一件商品有 2 件或更多件,有没有办法只显示小计?
我相信你是这个意思?在代码中添加注释的解释
function action_woocommerce_after_cart_item_name( $cart_item, $cart_item_key ) {
// Price
$price = $cart_item['data']->get_price();
// Line subtotal
$subtotal = $cart_item['line_subtotal'];
// Quantity
$quantity = $cart_item['quantity'];
echo '<p class="cart-price">' . wc_price( $price ) . '</p>';
if ( $quantity >= 2 ) {
echo '<p class="cart-subtotal">' . wc_price( $subtotal ) . '</p>';
}
}
add_action( 'woocommerce_after_cart_item_name', 'action_woocommerce_after_cart_item_name', 10, 2 );