我正在尝试使用 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 客户吗?
预先感谢您的帮助!
基于 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
,用于就在过滤器挂钩之后)…