我正在尝试获取所有woocommerce订单,并查找每个订单中的产品信息。我在这里和其他网站上看到了许多例子,它们似乎都说要做同样的事情,但都不起作用。我在Wordpress 4.1.1和Woocommerce 2.3.3上,以下是我的代码:
$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);
}
}
问题是当我
print_r($lineItem)
只有三个属性,其中只有两个曾经填充过。典型的
print_r($lineItem)
如下所示:
Array (
[name] => Fouta Towel – Pearl Grey & White Stripe
[type] => line_item
[item_meta] =>
)
如何获取有关此订单项目的其余信息,例如产品id、是否为单一/可变产品等
SO网友:Domain
我已经试用了你的代码,它工作得很好,事实上,它还提供了订单中每个产品的详细信息。我试过的代码
$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) {
//uncomment the following to see the full data
// echo \'<pre>\';
// print_r($lineItem);
// echo \'</pre>\';
echo \'<br>\' . \'Product Name : \' . $lineItem[\'name\'] . \'<br>\';
echo \'Product ID : \' . $lineItem[\'product_id\'] . \'<br>\';
if ($lineItem[\'variation_id\']) {
echo \'Product Type : Variable Product\' . \'<br>\';
} else {
echo \'Product Type : Simple Product\' . \'<br>\';
}
}
}
我从中得到的结果也是一样的。
试试这个,让我知道它对你的作用