【问题标题】:query WooCommerce orders within a date range through a custom meta key通过自定义元键查询日期范围内的 WooCommerce 订单
【发布时间】:2021-09-13 08:46:56
【问题描述】:

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

如果我必须使用wc_get_orders( $args ),如何获取某个日期范围内的所有订单?

尝试使用 meta_compare 参数,但它什么也没返回:

// 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 );

【问题讨论】:

    标签: wordpress date woocommerce metadata orders


    【解决方案1】:

    你很接近,使用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

    【讨论】:

    • 现在可以使用了!我确实尝试将变量转换为日期类型,但我认为由于转换后的日期格式,它以前不起作用。
    猜你喜欢
    • 2017-12-26
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多