Search code examples
phpwordpresswoocommercecartproduct

how to get particular product quantity from the cart page in the woocommerce


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.


Solution

  • 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.