我最喜欢的一位成员helgatheviking为我提供了一个很好的解决方案of my previous question,可以从购物车页面中删除特定产品属性的数量字段。以下是她给出的功能。
add_filter( 'woocommerce_cart_item_quantity', 'remove_cart_item_quantity', 10, 2 );
function remove_cart_item_quantity( $product_quantity, $cart_item_key ){
$cart_item = WC()->cart->cart_contents[ $cart_item_key ];
if( $cart_item['data']->is_type( 'variation' ) ){
$attributes = $cart_item['data']->get_attributes();
// var_dump( $attributes );
if( array_key_exists( 'color', $attributes ) ){
$product_quantity = '';
}
}
return $product_quantity;
}
现在$product_quantity;
返回一个空字符串。
是否可以显示名称而不是空白。 $product_quantity = '';
我应该更换什么?如果所选产品的颜色为绿色,则$product_quantity;
应返回绿色。
例:
$product_quantity = '$color';
如何从购物车中的产品属性中获取颜色字符串。
答案 0 :(得分:0)
我实际解决了这个问题$_pname = WC()->cart->get_item_data( $cart_item );
所以你可以使用$product_quantity = str_ireplace( 'Choose Quantity:', '',$_pname) ;
add_filter( 'woocommerce_cart_item_quantity', 'remove_cart_item_quantity', 10, 2 );
function remove_cart_item_quantity( $product_quantity, $cart_item_key ){
$cart_item = WC()->cart->cart_contents[ $cart_item_key ];
if( $cart_item['data']->is_type( 'variation' ) ){
$attributes = $cart_item['data']->get_attributes();
$_pname = WC()->cart->get_item_data( $cart_item );
if( array_key_exists( 'choose-quantity', $attributes ) ){
$product_quantity = str_ireplace( 'Choose Quantity:', '',$_pname) ;
}
}
return $product_quantity;
}
<强>输出:强>