2014-09-21 70 views
0

我使用woocommerce wordpress插件,並使用WC_Order類檢索了所有訂單的列表。 WC_Order documentationWordpress - Woocommerce - 檢索特定產品的訂單

這會返回有關訂單(如ID,日期和狀態)的簡單信息,但我需要知道客戶購買的產品。

到目前爲止,我的工作代碼爲:

$args = array(
    'post_type' => 'shop_order', 
    'post_status' => 'publish', 
    'meta_key' => '_customer_user', 
    'posts_per_page' => '-1' 
); 

$my_query = new WP_Query($args); 
$customer_orders = $my_query->posts; 

$all_order_data = array(); 

foreach ($customer_orders as $customer_order) { 
    $order = new WC_Order(); 
    $order->populate($customer_order); 
    $orderdata = (array) $order; 
    $all_order_data[] = $orderdata; 
} 

,方便查看數據I輸出它作爲JSON:

echo json_encode($all_order_data); 

不過,我需要能夠查看產品被購買什麼與每個訂單。我找不到辦法做到這一點,並且我沒有看到網絡上有關實現此功能的任何信息。同樣,如果可能的話,檢索附在產品上的訂單對我來說也是非常重要的。

有沒有人做過這個?或者任何人都可以將我指向正確的方向?

回答

0

您可以使用訂單對象上的get_items()方法在訂單中查看項目。在我的例子中,$all_order_data將是在查詢的訂單中購買的所有物品的數組。

$customer_orders = new WP_Query($args); 

$all_order_data = array(); 

while ($customer_orders->have_posts()){ 
    $customer_orders->the_post();) { 
    $order = new WC_Order(); 
    $all_order_data[] = $order->get_items(); 
} 

wp_reset_postdata(); 
0

@helgatheviking在正確的軌道上,但她的示例代碼不能編譯。所有你需要做的是更換

$orderdata = (array) $order; 
$all_order_data[] = $orderdata; 

$all_order_data[] = $order->get_items(); 

希望這有助於!

相關問題