我正在使用woocommerce wordpress插件,我使用WC_Order类检索了所有订单的列表。 WC_Order documentation
这会返回有关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);
但是,我需要能够查看每个订单所购买的产品。我找不到办法做到这一点,我没有在网上看到有关实现此功能的任何内容。同样,如果可能,检索附加到产品的订单对我来说也非常重要。
以前有人这样做过吗?或者任何人都可以指出我正确的方向?
答案 0 :(得分: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();
答案 1 :(得分:0)
@helgatheviking在正确的轨道上,但她的示例代码没有编译。您需要做的就是替换
$orderdata = (array) $order;
$all_order_data[] = $orderdata;
与
$all_order_data[] = $order->get_items();
希望这有帮助!