在 WooCommerce 中计算特定订单 ID 后的订单数量*订购*

Count number of orders *ordered* after an specific order ID in WooCommerce

我们正在尝试为第 10 位从网站订购的用户提供奖品。

并非所有时间用户订单。比赛今天开始,所以我们需要统计昨晚最后一个订单之后的订单数量。

我有昨晚订单的订单id

我怎样才能做到这一点?

到目前为止我有这个:

$args = array();

$args['numberposts'] = 10;

$args['status'] = array( 'wc-completed', );

$args['ADDITIONAL_PARAMETER'] = ADDITIONAL_PARAMETER; /* orders after and specific order */

$orders = wc_get_orders( $args );

你能帮忙吗?

您可以使用 wc_get_ordersWC_Order_Query,它们提供了一种检索订单的标准方法,使用安全,不会因未来 WooCommerce 版本中的数据库更改而中断。

来源:wc_get_orders and WC_Order_Query - 只需传递一系列定义搜索条件的参数。

所以你得到:

// Order ID last night
$order_id_last_night = 2448;

// Get $order object
$order_last_night = wc_get_order( $order_id_last_night );

// Get date created
$order_last_night_date_created = $order_last_night->get_date_created();

// Get 10 order IDs after date last night
$orders_ids = wc_get_orders( array(
    'status'       => array( 'wc-completed' ),
    'limit'        => 10,
    'orderby'      => 'date',
    'order'        => 'ASC',
    'date_created' => '>' . strtotime( $order_last_night_date_created ),
    'return'       => 'ids',
));
 
// Consists of 10
if( count( $orders_ids) == 10 ) {
    // Returns the value of the last element
    echo end( $orders_ids );
}