WooCommerce 从所有订单中获取项目元数据 [英] WooCommerce Get Item Meta from All Orders
问题描述
我正在尝试显示来自 WooCommerce 插件的所有已完成订单的所有订单项目(带有项目元).我还想将显示限制为仅 10 个订单项.我已经弄清楚如何显示所有订单项目,但不能将数量限制为 10.这是我目前用于显示所有订单项目的代码:
$args = 数组('post_type' =>'shop_order','post_status' =>'发布','posts_per_page' =>-1,'tax_query' =>大批(大批('分类' =>'shop_order_status','字段' =>'蛞蝓','条款' =>数组('完成'))));$loop = new WP_Query( $args );while ( $loop->have_posts() ) : $loop->the_post();$order_id = $loop->post->ID;$order = new WC_Order($order_id);foreach( $order->get_items() as $item ) {$date = $item['预订日期'];$time = $item['预订时间'];$fname = $item['名字 - 名字'];$church = $item['教会信息 - 教会名称'];$city = $item['教堂信息 - 城市'];$state = $item['教会信息 - 州'];?><div class="wc-upcoming-booking"><div class="wc-upcoming-time"><span class="upcoming-hour"><?php echo $time;?></span><span class="upcoming-date"><?php echo $date;?></span>
<div class="wc-upcoming-details"><?php echo $fname .', ' .$教会.', ' .$城市.', ' .$状态;?>
<?php }终了;
此代码查询所有已完成的订单,然后为每个查询的订单循环遍历所有订单项.有些订单可能有 1 个以上的订单项目,因此如果我将每页的帖子数限制为 10,并且所有这些订单都有 5 个订单项目,那么我将总共显示 50 个订单项目.我尝试在 foreach 循环中添加一个迭代"变量来限制它,但这只循环遍历一个订单的5"个订单项,而不是整个50"个订单项.
首先,我需要通过 $date 和 $time 变量对所有订单项进行排序(我相信我可以通过使用 strtotime() 函数将它们转换为时间戳来实现).
其次,我只想显示所有订单中的前 10 个订单项目(基于时间戳).
任何想法如何修改此代码以允许这样做?
我认为 wordpress 不会为您提供此类查询.你必须建立自己的逻辑来做到这一点.希望这可以帮助你...
$args = 数组('post_type' =>'shop_order','post_status' =>'发布','posts_per_page' =>-1,'tax_query' =>大批(大批('分类' =>'shop_order_status','字段' =>'蛞蝓','条款' =>数组('完成'))));$count = 0;$loop = new WP_Query( $args );while ( $loop->have_posts() ) : $loop->the_post();$order_id = $loop->post->ID;$order = new WC_Order($order_id);foreach( $order->get_items() as $item ) {如果($计数> 10){打破2;//中断两个循环}$count++;$date = $item['预订日期'];$time = $item['预订时间'];$fname = $item['名字 - 名字'];$church = $item['教会信息 - 教会名称'];$city = $item['教堂信息 - 城市'];$state = $item['教会信息 - 州'];?><div class="wc-upcoming-booking"><div class="wc-upcoming-time"><span class="upcoming-hour"><?php echo $time;?></span><span class="upcoming-date"><?php echo $date;?></span>