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&euro;</p>',
        '<p class="cart-subtotal">13,80&euro;</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 );