austen osborne
¡Esto parece tan simple, pero era tarde y podría haber estado complicando demasiado las cosas!
Actualmente estoy usando el woocommerce_thankyou
enganchar en el WP
archivo de funciones para compilar algunos datos y enviarlos a una API de terceros. Hasta ahora, tan fácil, usando estándar $order
y $order_meta values
. Pero necesito obtener el número total de artículos en un pedido y no puedo ver dónde conseguirlo.
Así que si alguien ordena 2
widgets verdes y 3
widgets azules, necesito obtener 5
desde algún lugar.
¿Me estoy perdiendo algo obvio? 🙂
LoicTheAztec
Contar artículos de pedido puede ser 2 cosas diferentes:
-
Recuento total de artículos:
// Obtenga una instancia del objeto WC_Order $order = wc_get_order ($ order_id);
$items_count = count( $order->get_items() );
// Prueba de salida echo $items_count;
-
La cantidad total de artículos cuenta:
// Obtenga una instancia del objeto WC_Order $order = wc_get_order ($ order_id);
$cantidad_total = 0; // Inicializando
// Recorra los artículos de pedido para cada uno ($order->get_items() as $item) { $total_quantity += $item->get_quantity(); }
// Prueba de salida echo $total_quantity;
O puede usar el WC_Order get_item_count()
método que hace lo mismo (ver su código fuente):
// Get an instance of the WC_Order Object
$order = wc_get_order( $order_id );
$total_quantity = $order->get_item_count();
Use esto para obtener el total de artículos en un pedido:
$order = wc_get_order( $order_id );
echo $order->get_item_count(); // Will display the total numbers
-
Gracias por esto: al mirar los documentos de Woo, dice que esta función “Obtiene el recuento de artículos de pedido de un tipo determinado”. ¿Eso significa que si el carrito tiene una combinación de productos simples y variables, entonces fallará?
–Austen Osborne
13 de septiembre de 2019 a las 12:43
-
Sí, también funcionará para mezclar tipos de artículos de pedido.
– itzmekhokan
13 de septiembre de 2019 a las 12:49
$order = new WC_Order( 1 ); $order_items = $order->get_items(); echo count($order_items);
– PHP Ninja
13 de septiembre de 2019 a las 11:25
Gracias Gulshan. Intenté algo similar y da ‘2’; como en widgets verdes y widgets azules, en el ejemplo anterior.
–Austen Osborne
13 de septiembre de 2019 a las 12:04