php - programar - tags wordpress codex
La funciĆ³n get_item() de Woocommerce devuelve falso (1)
La única explicación es que la ID que está utilizando no es un
item_id
con un tipo"line_item"
...
Lo he intentado y funciona normalmente como se esperaba usando el WC_Abstract_Order
get_item()
cuando item_id
es del tipo "line_item".
Para obtener los ID de artículo "line_item"
correctos de un ID de pedido definido, intente:
// define an exiting order ID first
$order_id = 422;
$order = wc_get_order($order_id);
foreach($order->get_items() as $item_id => $item_values){
$item_ids_array[] = $item_id;
}
var_dump( $item_ids_array ); // will output all item IDs (of type "line_item") for this order
## ==> Then now you can try (to check get_item() method):
foreach( $item_ids_array as $item_id ){
var_dump( $order->get_item( $item_id ) ); // Will output each WC_Order_Item_Product Object …
}
Esto debería aclarar las cosas.
Como referencia: Cómo obtener los detalles de la orden de WooCommerce
Con WooCommerce 3+ presentando una nueva API para buscar el pedido y sus detalles, muchas cosas han cambiado y muchas cosas también se han roto.
Considere el siguiente código en mi complemento:
$order = wc_get_order($order_id);
$id= 27;
var_dump($order->get_item($id));
que me da bool (falso) . He revisado la base de datos y el orden, y el elemento existe.
también
var_dump($order)
devuelve el objeto de pedido completo con todos los artículos.
Entonces, básicamente, solo la función get_item
no parece funcionar.