Vivek Raj
Con este código:
foreach ( WC()->cart->get_cart() as $cart_item ) {
$quantity = $cart_item['quantity'];
echo $quantity;
}
Puedo obtener la cantidad de todos los productos agregados en el carrito, pero la necesito para el producto en particular.
LoicTheAztec
Puede recorrer los artículos del carrito para obtener la cantidad de una identificación de producto específica de la siguiente manera:
// 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 );
}
O también puedes usar el WC_Cart
método get_cart_item_quantities()
de la siguiente manera:
// 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] );
}
Nota: Esta última forma no permite apuntar al producto de la variable principal.
Pankaj Patel
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) {
$_product = $values['data']->post;
echo "<b>".$_product->post_title.'</b> <br> Quantity: '.$values['quantity'].'<br>';
$price = get_post_meta($values['product_id'] , '_price', true);
echo " Price: ".$price."<br>";
}
$cart = WC()->cart->get_cart();
$product_cart_id = WC()->cart->generate_cart_id( $product->get_id() );
if( WC()->cart->find_product_in_cart( $product_cart_id )) {
echo($cart[$product_cart_id]['quantity']);
}
-
No publique solo el código como respuesta, sino que también brinde una explicación de lo que hace su código y cómo resuelve el problema de la pregunta. Las respuestas con una explicación suelen ser más útiles y de mejor calidad, y es más probable que atraigan votos a favor.
– Mark Rotteveel
5 de mayo de 2020 a las 7:56
Prueba esto :
<?php
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) {
$_product = $values['data']->post;
echo "<b>".$_product->post_title.'</b> <br> Quantity: '.$values['quantity'].'<br>';
$price = get_post_meta($values['product_id'] , '_price', true);
echo " Price: ".$price."<br>";
}
?>
Fraide
1) Haz un tema hijo
2) Cree un archivo llamado functions.php con este código:
<?php
if( !function_exists('in_cart_product_quantity') ) {
function in_cart_product_quantity( $atts ) {
$atts = shortcode_atts(array('id' => ''), $atts, 'product_qty'); // shortcode attributes
if( empty($atts['id'])) return; // check id not null
if ( WC()->cart ) { // check cart exists
$qty = 0; // init qty
foreach (WC()->cart->get_cart() as $cart_item) {
if($cart_item['product_id'] == $atts['id']) {
$qty = $cart_item['quantity'];
break; // stop the loop if product is found
}
}
return $qty;
}
return;
}
add_shortcode( 'product_qty', 'in_cart_product_quantity' );
}
3) Usa el código abreviado:
[product_qty id="xxx"]
(Cambie xxx con id del producto que desea saber la cantidad en el carrito)
Gracias a LoicTheAztec (Mismo hilo)
WC_Cart::get_cart_item_quantities() – Get cart items quantities
- A través de
$product_id
// Your product ID
$product_id = 30;
// Get cart items quantities
$cart_item_quantities = WC()->cart->get_cart_item_quantities();
// Product quantity in cart - All PHP versions
$product_qty_in_cart = isset( $cart_item_quantities[ $product_id ] ) ? $cart_item_quantities[ $product_id ] : null;
// Product quantity in cart - Same as the previous one with PHP 7
$product_qty_in_cart = $cart_item_quantities[ $product_id ] ?? null;
// Result
echo $product_qty_in_cart;
- A través de
$product
// Product
global $product;
// Get cart items quantities
$cart_item_quantities = WC()->cart->get_cart_item_quantities();
// Product quantity in cart
$product_qty_in_cart = $cart_item_quantities[ $product->get_stock_managed_by_id() ];
// Result
echo $product_qty_in_cart;
solo verifique si la declaración
if($cart_item['product_id'] === 'your-id') {
– Tamil Selvan C
19 de junio de 2017 a las 14:28