通过自定义元键查询日期范围内的 WooCommerce 订单

query WooCommerce orders within a date range through a custom meta key

我有一个名为 delivered_date 的 meta_key,采用日期格式,例如 2021-05-13 16:01:26

如果我必须使用 wc_get_orders( $args ),我怎样才能获得一个日期范围内的所有订单?

尝试使用 meta_compare 参数,但 returns 没有:

// The 2 variables below will come from a datepicker widget
$start_date = "2021-05-10 0:00:00";
$end_date = "2021-05-30 11:59:59";

$args = array(
        'type'         => 'shop_order',
        'limit'        => 100,
        'paginate'     => true,
        'page'         => 1,
        'orderby'      => 'id',
        'order'        => 'DESC',
        'meta_key'     => 'delivered_date',
        'meta_value'   => array($start_date, $end_date),
        'meta_compare' => 'BETWEEN',
    );

$result = wc_get_orders( $args );

你很接近,使用date — 格式化本地time/date

所以你得到:

// The 2 variables below will come from a datepicker widget
$start_date = date( '2021-05-10 00:00:00' );
$end_date = date( '2021-05-30 11:59:59' );

$args = array(
    'orderby'      => 'id',
    'order'        => 'DESC',
    'meta_key'     => 'delivered_date',
    'meta_value'   => array( $start_date, $end_date ),
    'meta_compare' => 'BETWEEN',
);

$orders = wc_get_orders( $args );

// NOT empty
if ( ! empty ( $orders ) ) {        
    foreach ( $orders as $order ) {         
        echo '<p>ID = ' . $order->get_id() . '</p>';
    }
}

结果:ID = 2525,ID = 2524,ID = 2523