Come ottenere le informazioni sui prodotti degli ordini WooCommerce
Sto cercando di ottenere tutti gli ordini WooCommerce e trovare informazioni sui prodotti in ciascun ordine. Ho visto molti esempi qui e altrove sul web e sembrano tutti suggerire la stessa cosa ma non funziona. Sto usando WordPress 4.1.1 e WooCommerce 2.3.3, ecco il mio codice:
$filters = array(
'post_status' => 'any',
'post_type' => 'shop_order',
'posts_per_page' => 200,
'paged' => 1,
'orderby' =>'modified',
'order' => 'ASC'
);
$loop = new WP_Query( $filters );
while ( $loop->have_posts() ) {
$loop->the_post();
$order = new WC_Order($loop->post->ID);
foreach ($order->get_items() as $key => $lineItem) {
print_r($lineItem);
}
}
Il problema è che quando eseguo print_r($lineItem)
ci sono solo tre proprietà di cui solo due sono popolate. Un tipico print_r($lineItem)
appare così:
Array (
[name] => Asciugamano Fouta – Grigio Perla & Strisce Bianche
[type] => line_item
[item_meta] =>
)
Come posso ottenere il resto delle informazioni su questo elemento dell'ordine, ad esempio l'ID del prodotto, se è un prodotto singolo / variabile ecc?

Ho provato il tuo codice e funziona bene, infatti mostra anche i dettagli di ogni prodotto negli ordini. Il codice che ho provato è:
$filters = array(
'post_status' => 'any',
'post_type' => 'shop_order',
'posts_per_page' => 200,
'paged' => 1,
'orderby' => 'modified',
'order' => 'ASC'
);
$loop = new WP_Query($filters);
while ($loop->have_posts()) {
$loop->the_post();
$order = new WC_Order($loop->post->ID);
foreach ($order->get_items() as $key => $lineItem) {
// decommenta quanto segue per vedere tutti i dati
// echo '<pre>';
// print_r($lineItem);
// echo '</pre>';
echo '<br>' . 'Nome Prodotto : ' . $lineItem['name'] . '<br>';
echo 'ID Prodotto : ' . $lineItem['product_id'] . '<br>';
if ($lineItem['variation_id']) {
echo 'Tipo Prodotto : Prodotto Variabile' . '<br>';
} else {
echo 'Tipo Prodotto : Prodotto Semplice' . '<br>';
}
}
}
E questo è l'output che ho ottenuto:
Prova questo codice e fammi sapere come funziona per te
