如何使用 WC_Order_Query class 自定义订单状态
How to use WC_Order_Query class with custom order status
我创建了一个新的订单状态:packed。
我想获取订单状态为“已打包”的订单。此订单状态必须至少在 2 天前创建。但是,我的时间有问题。 date_modified 根据当地时间不工作。有没有人遇到过这个问题并有解决办法?
$two_days_ago = date(strtotime('-2 day'), current_time('timestamp'));
$current_time = current_time('timestamp');
$args = array(
'limit' => -1,
'return' => 'ids',
'date_modified ' => $two_days_ago_tomorrow.'...'.current_time('timestamp'),
'status' => 'a-packed'
);
$query = new WC_Order_Query( $args );
wc_get_orders
和 WC_Order_Query
提供了一种检索订单的标准方法,使用安全,不会因未来 WooCommerce 版本中的数据库更改而中断。您传入定义搜索条件的参数数组。
更多信息:wc_get_orders and WC_Order_Query
由于您在问题中提到 “此订单状态必须至少在 2 天前创建”,在我看来 date_created
的使用是比 date_modified
更合适
所以你得到:
$days_delay = 2; // 48 hours
$one_day = 24 * 60 * 60;
$today = strtotime( date('Y-m-d') );
$orders = wc_get_orders( array(
'status' => array( 'your-custom-status' ),
'orderby' => 'date',
'order' => 'ASC',
'date_created' => '<' . ( $today - ( $days_delay * $one_day ) ),
));
foreach ( $orders as $order ) {
$order_id = $order->get_id();
echo '<p>' . $order_id . '</p>';
}
我创建了一个新的订单状态:packed。
我想获取订单状态为“已打包”的订单。此订单状态必须至少在 2 天前创建。但是,我的时间有问题。 date_modified 根据当地时间不工作。有没有人遇到过这个问题并有解决办法?
$two_days_ago = date(strtotime('-2 day'), current_time('timestamp'));
$current_time = current_time('timestamp');
$args = array(
'limit' => -1,
'return' => 'ids',
'date_modified ' => $two_days_ago_tomorrow.'...'.current_time('timestamp'),
'status' => 'a-packed'
);
$query = new WC_Order_Query( $args );
wc_get_orders
和 WC_Order_Query
提供了一种检索订单的标准方法,使用安全,不会因未来 WooCommerce 版本中的数据库更改而中断。您传入定义搜索条件的参数数组。
更多信息:wc_get_orders and WC_Order_Query
由于您在问题中提到 “此订单状态必须至少在 2 天前创建”,在我看来 date_created
的使用是比 date_modified
所以你得到:
$days_delay = 2; // 48 hours
$one_day = 24 * 60 * 60;
$today = strtotime( date('Y-m-d') );
$orders = wc_get_orders( array(
'status' => array( 'your-custom-status' ),
'orderby' => 'date',
'order' => 'ASC',
'date_created' => '<' . ( $today - ( $days_delay * $one_day ) ),
));
foreach ( $orders as $order ) {
$order_id = $order->get_id();
echo '<p>' . $order_id . '</p>';
}