查看 Woocommerce 3 中最近未完成订单的状态

Check the status of recent uncompleted orders in Woocommerce 3

如果有经验,请告诉我,如何做,或朝着正确方向前进的行动计划。

  1. 需要CRON,查看外发服务中的状态(但无所谓)
  2. 获得未完成的订单或交替获得一个未完成的订单。

示例: 我们有 3-5 个未完成的订单(过去 24 小时)。 我创建了一些函数来检查未完成订单的状态。 获取第一个订单,检查状态,如果外部服务状态发生变化,那么我在商店中进行更改。动作完成。

检查状态:等待,正在处理。

对第 2 段感兴趣。

我在这里找到了一个论点,也许它适合:

// Get refunds in the last 24 hours.
$args = array(
    'type' => 'shop_order_refund',
    'date_created' => '>' . ( time() - DAY_IN_SECONDS ),
);
$orders = wc_get_orders( $args );

更新2 (创建日期24小时内查看订单)

您可以使用嵌入在实用程序函数中的这个非常简单的 SQL 查询,它将获取订单后 24 小时内状态为 "On Hold" 和 "Processing" 的所有订单 ID创建日期:

function get_order_ids_to_check(){
    global $wpdb;

    return $wpdb->get_col( "
        SELECT p.ID
        FROM {$wpdb->prefix}posts as p
        WHERE p.post_type LIKE 'shop_order'
        AND p.post_status IN ('wc-on-hold','wc-processing')
        AND UNIX_TIMESTAMP(p.post_date) >= (UNIX_TIMESTAMP(NOW()) - 86400)
    " );
}

代码进入活动子主题(或活动主题)的 function.php 文件。已测试并有效。


USAGE - 你可以在任何地方使用它,在另一个函数中就像这个假代码示例:

// Get the Orders IDs to check
$orders_ids = get_order_ids_to_check();

// Loop through each order Ids
foreach( $orders_ids as $order_id ){
    // Get the delivery order ID related to your external shipping service
    $delivery_order_id = get_post_meta( $order_id, 'delivery_order_id', true );
}