[英]Add the product ID after the cart item name in Woocommerce cart page
[英]Add product id to cart item class
我想获取购物车中某个项目的product_id
,然后将其回显到一个类(自定义id
),因此我可以分别设置样式。
我有这个:
<?php
foreach( WC()->cart->get_cart() as $cart_item ){
$product_id = $cart_item['product_id'];
break;
}
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
?>
<li id="mcitem-<?php echo esc_attr($cart_item_key); ?>" class="custom-<?php echo $product_id'; ?>">
这部分已经在mini-cart.php模板中了, li
也没有,但没有class属性,我添加了它。
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
我试图以不同的方式在类内echo $product_id
:
echo '$product_id';
echo esc_attr($product_id);
都测试了并且没有用。 然后我发现了这个片段:
foreach( WC()->cart->get_cart() as $cart_item ){
$product_id = $cart_item['product_id'];
break;
}
(还对其进行了无间断的测试,因此已在循环内外进行了测试)
然后我重复了两次回声,但是回声结果仍然是空白(无)。
我在这里做错了什么?
如果要在购物woocommerce_cart_item_class
添加类,则可以过滤woocommerce_cart_item_class
。
/**
* Changes the tr class of cart items.
*
* @param string $class
* @param array $values
* @param string $values_key
* @return string
*/
function so_42237701_cart_item_class( $class, $values, $values_key ) {
if ( isset( $values[ 'product_id' ] ) ) {
$class .= ' custom-' . $values[ 'product_id' ];
}
return $class;
}
add_filter( 'woocommerce_cart_item_class', 'so_42237701_cart_item_class', 10, 3 );
对于迷你手推车:
/**
* Changes the tr class of items in the mini-cart.
*
* @param string $class
* @param array $values
* @param string $values_key
* @return string
*/
function so_42237701_mini_cart_item_class( $class, $cart_item, $cart_item_key ) {
if ( isset( $cart_item[ 'product_id' ] ) ) {
$class .= ' custom-' . $cart_item[ 'product_id' ];
}
return $class;
}
add_filter( 'woocommerce_mini_cart_item_class', 'so_42237701_mini_cart_item_class', 10, 3 );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.