You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取指定起始日期之后创建的WooCommerce订单?

如何获取指定起始日期之后创建的WooCommerce订单?

没问题,我帮你调整代码来实现从指定起始日期筛选WooCommerce订单的需求~ 核心思路是把你指定的起始日期转换成WooCommerce专用的WC_DateTime对象,然后和订单的日期做直接比较(避免原代码中24小时差值的局限),同时要注意时区统一,防止跨时区的判断误差。

思路说明

原代码通过计算当前时间与订单时间的24小时差值来筛选订单,现在我们需要把逻辑改成:判断订单的创建/完成日期是否晚于或等于你指定的起始日期。关键是要让起始日期和订单日期使用相同的时区,确保比较结果准确。

修改后的完整代码(推荐写法)

// 1. 定义你的起始日期(注意格式要和createFromFormat的参数对应)
$my_start_date = '2024/11/01';
// 将字符串日期转换为WC_DateTime对象,同时统一使用站点默认时区
$start_date = WC_DateTime::createFromFormat('Y/m/d', $my_start_date);
$start_date->setTimezone( wc_timezone() ); // 对齐WooCommerce站点时区

// 2. 处理单个订单(假设你在循环订单列表,这里是单条订单的判断逻辑)
$order = wc_get_order( $customer_order );          

// 注意:根据需求选择日期类型
// - 订单创建日期:用get_date_created()
// - 订单完成日期:用get_date_completed()
$order_date_dt = $order->get_date_created();            
$order_date_dt->setTimezone( wc_timezone() ); // 统一时区

// 3. 核心判断:订单日期是否晚于/等于起始日期
if ( $order_date_dt >= $start_date ) {
    echo '<p>订单是从2024/11/01至今创建的</p>';
}

基于你原代码结构的适配版本

如果你想保留原代码的变量结构,只需要替换掉24小时差值的逻辑,改成时间戳比较即可:

$my_start_date = '2024/11/01';
// 转换起始日期为WC_DateTime对象并对齐时区
$start_date = WC_DateTime::createFromFormat('Y/m/d', $my_start_date);
$start_date->setTimezone( wc_timezone() );
$start_ts = $start_date->getTimestamp(); // 起始日期的时间戳

$order = wc_get_order( $customer_order );          
        
$date_created_dt = $order->get_date_completed();            
$date_created_dt->setTimezone( wc_timezone() ); // 统一时区
$date_created_ts = $date_created_dt->getTimestamp(); // 订单完成日期的时间戳

// 直接比较时间戳:订单时间 >= 起始日期时间
if ( $date_created_ts >= $start_ts ) {
    echo '<p>订单是从2024/11/01至今完成的</p>';
}

关键注意事项

  • 时区必须统一:WooCommerce的WC_DateTime对象自带时区属性,一定要确保起始日期和订单日期使用相同的时区(推荐用wc_timezone()获取站点默认时区),否则会出现跨时区的判断错误。
  • 日期格式要对应:createFromFormat的第一个参数必须和你的日期字符串格式完全匹配,比如你用01/11/2024(日/月/年)的话,就要把格式改成d/m/Y,否则日期转换会失败。
  • 明确日期类型:仔细区分你要筛选的是「订单创建日期」还是「订单完成日期」,分别对应get_date_created()和get_date_completed(),不要搞混。

备注:内容来源于stack exchange,提问作者JPashs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 08:45:54