With this code:
foreach ( WC()->cart->get_cart() as $cart_item ) { $quantity = $cart_item['quantity']; echo $quantity; }
I can get the quantity of all the products added in cart but I need it for the particular product.
Advertisement
Answer
You can loop through cart items to get the quantity for a specific product id as follows:
// Set here your product ID (or variation ID) $targeted_id = 24; // Loop through cart items foreach ( WC()->cart->get_cart() as $cart_item ) { if( in_array( $targeted_id, array($cart_item['product_id'], $cart_item['variation_id']) ){ $quantity = $cart_item['quantity']; break; // stop the loop if product is found } } // Displaying the quantity if targeted product is in cart if( isset( $quantity ) && $quantity > 0 ) { printf( '<p>' . __("Quantity for Product ID %d is: %d") . '</p>, $targeted_id, $quantity ); }
Or you can also use the WC_Cart
method get_cart_item_quantities()
as follow:
// Set here your product ID (or variation ID) $targeted_id = 24; // Get quantities for each item in cart (array of product id / quantity pairs) $quantities = WC()->cart->get_cart_item_quantities(); // Displaying the quantity if targeted product is in cart if( isset($quantities[$targeted_id]) && $quantities[$targeted_id] > 0 ) { printf( '<p>' . __("Quantity for Product ID %d is: %d") . '</p>, $targeted_id, $quantities[$targeted_id] ); }
Note: This last way doesn’t allow to target the parent variable product.