我目前正试图在woocommerce中获得最近销售的产品。在数据库表 woocommerce_order_items 中,我可以看到每个购买的产品,以及它所拥有的item_order_id
以及它所属的order_id
。如果我将此表格降序排序,我会收到最近购买的产品,但我在此表格中没有product ID
。
我需要从表中循环显示此信息,并根据order_item_id
获取产品ID,以显示上次在网站上销售的产品。
这是否可以正常循环?或者我必须使用WPDB吗?事实上,最终,您应该能够按最新添加的产品,大多数销售的产品和最新销售的产品对产品进行分类。这两个首先使用了一个正常的循环,如果我能用它来获取最新的产品,那将是很好的。
谢谢!
答案 0 :(得分:0)
我知道这是一个老问题,但我有一个非常类似的探测器。我最终使用了这个:
// get order_id's from the past 7 days and loop through them ( thanks to http://club.orbisius.com/howto/woocommerce/list-recently-completed-woocommerce-orders/ )
$after_date = date( 'Y-m-d', strtotime('-7 days') );
$args = array(
'post_type' => 'shop_order',
'post_status' => 'publish',
'posts_per_page' => -1
);
$args['date_query'] = array(
'after' => $after_date,
'inclusive' => true
);
$posts = get_posts( $args );
foreach( $posts as $post ) {
$order = new WC_Order($post->ID);
$products = $order->get_items(); // get products in current order
// loop through products to find matching id's and add qty when matching current id
foreach ( $products as $product ) {
// do your stuff as you wish here
} // end foreach $product
} // end foreach $post