我试图创建一个自定义的WooCommerce简码(在简码中有一个“产品ID”属性),它将显示客户当前在其购物车中的特定项目的当前数量。
我有一个良好的开端,我的简码是正确显示单一/简单的产品,但有一个问题,当涉及到产品有多个变化。我想简码显示总数量为父产品;它没有必要显示数量为每个变化。
例如,如果客户的购物车有:
- 产品-小号(推车中x2)
- 产品-中号(购物车中x1)
- 产品-大号(推车中x3)
我想让代码显示6。
我想我可以通过使用WC()->cart->get_cart()
来做到这一点,并确保使用$cart_item['product_id']
而不是$cart_item['variation_id']
,但尽管我使用了'product id',shortcode属性是父产品的id,它只显示最近添加到购物车的任何变化的购物车数量。
任何想法,我如何可以调整这一点,以显示在购物车总和的所有变化下的父产品?
下面是我目前为止的代码:
if( !function_exists('in_cart_product_quantity') ) {
function in_cart_product_quantity( $atts ) {
$atts = shortcode_atts(array('id' => ''), $atts, 'cart_qty_badge');
if( empty($atts['id'])) return;
if ( WC()->cart ) {
$qty = 0;
foreach (WC()->cart->get_cart() as $cart_item) {
if($cart_item['product_id'] == $atts['id']) {
$qty = $cart_item['quantity'];
}
}
return $qty;
}
return;
}
add_shortcode( 'cart_qty_badge', 'in_cart_product_quantity' );
}
字符串
1条答案
按热度按时间w1e3prcc1#
使用以下方法代替,当购物车中的特定可变产品有多个变化时,应该可以解决您的问题:
字符串
应该能用