私はすべての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)
したときにたった2つのプロパティしかない3つのプロパティしかない場合です。典型的なprint_r($lineItem)
はこのようになります:
Array (
[name] => Fouta Towel – Pearl Grey & White Stripe
[type] => line_item
[item_meta] =>
)
この注文商品に関する残りの情報(商品ID、単一商品か可変商品かなど)を取得するにはどうすればよいですか。
あなたのコードを試してみました、そしてそれはうまく働きます、そしてそれは注文の中でそれぞれの製品の詳細も与えます。私が試したコード
$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>';
}
}
}
そして私が同じから得た出力。
これを試して、それがあなたにとってどのように機能するのか教えてください