按 WooCommerce REST API 中创建的日期过滤客户

问题描述 投票:0回答:1

我正在尝试使用 REST API 从 WooCommerce 检索客户数据,并按创建日期进行筛选。我尝试了两种不同的方法,但似乎都不起作用。这是我尝试过的:

使用

date_created
参数:

{{base_url}}/wc/v3/customers/?date_created=2023-12-18 08:36:18

使用after参数:

{{base_url}}/wc/v3/customers/?after=2023-12-18 08:36:18

在这两种情况下,我似乎都没有得到预期的结果。我是否应该使用特定的日期格式,或者是否有其他方法可以实现此目的?

任何人都可以为我指出正确的方向,以便按使用 REST API 创建的日期过滤 WooCommerce 客户吗?

预先感谢您的帮助!

php wordpress woocommerce hook-woocommerce woocommerce-rest-api
1个回答
0
投票

基于 WooCommerce REST API v3 - 按修改日期筛选客户答案,添加以下代码:

add_filter('woocommerce_rest_customer_query', 'add_created_before_and_after_filter_to_rest_api', 10, 2);
function add_created_before_and_after_filter_to_rest_api( $prepared_args, $request ) {
    $created_after  = $request->get_param('created_after');
    $created_before = $request->get_param('created_before'); 
    $date_query     = []; // Initialize variable

    if ( $created_after ) {
        $date_query['after'] = date("F jS, Y", strtotime($created_after));
    }

    if ( $created_before ) {
        $date_query['before'] = date("F jS, Y", strtotime($created_before));
    }

    if ( ! empty($date_query) ) {
        $prepared_args['date_query'][] = $date_query;
    }
    return $prepared_args;
}

然后您可以尝试使用

created_after
created_before
参数来查询日期之前或/和之后的客户,例如 (此处为日期范围):

{{base_url}}/wp-json/wc/v3/customers/?created_after=2023-12-17&created_before=2023-12-19

它可以工作(适用于

WP_User_Query
,用于就在过滤器挂钩之后

© www.soinside.com 2019 - 2024. All rights reserved.