如果有经验,请告诉我如何做,或告诉行动方向正确的行动。
示例: 我们有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 );
答案 0 :(得分:1)
更新2 (在创建日期后的24小时内检查订单)
您可以使用实用程序函数中嵌入的该非常简单的SQL查询,该查询将在订单创建日期后的24小时内获取状态为“保留”和“处理中”的所有订单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文件中。经过测试,可以正常工作。
用法-您可以在任何地方使用它,例如此伪代码示例中的另一个功能:
// 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 );
}