在 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_orders
和 WC_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 );
}
我们正在尝试为第 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_orders
和 WC_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 );
}