[英]Disable item name link for specific product in Woocommerce cart checkout and orders
[英]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.