簡體   English   中英

Wordpress-Woocommerce-檢索特定產品的訂單

[英]Wordpress - Woocommerce - Retrieve orders for specific product

我正在使用woocommerce wordpress插件,並且已經使用WC_Order類檢索了所有訂單的列表。 WC_Order文檔

這將返回有關訂單的簡單信息,例如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;
}

為了方便查看數據,我將其輸出為json:

echo json_encode($all_order_data);

但是,我需要能夠查看每個訂單購買了哪些產品。 我找不到實現此功能的方法,並且在網絡上也沒有看到有關實現此功能的任何信息。 同樣,如果可能的話,檢索對產品附加的訂單對我來說也非常重要。

有人做過嗎? 還是有人可以指出我正確的方向?

您可以使用訂單對象上的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();

@helgatheviking步入正軌,但她的示例代碼未編譯。 您需要做的就是更換

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

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

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM