【问题标题】:Count number of orders *ordered* after an specific order ID in WooCommerce在 WooCommerce 中的特定订单 ID 之后计算 *ordered* 的订单数
【发布时间】:2021-08-31 12:40:02
【问题描述】:

我们正在尝试为从网站订购的第 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 );

你能帮忙吗?

【问题讨论】:

    标签: php wordpress woocommerce orders


    【解决方案1】:

    您可以使用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 );
    }
    

    【讨论】:

    • 这正是我所需要的。我爱你,伙计。
    猜你喜欢
    • 2017-08-05
    • 2017-10-27
    • 2021-02-18
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 2021-07-24
    • 2019-09-08
    • 1970-01-01
    相关资源
    最近更新 更多