WooCommerce REST API - 按修改日期过滤订单

use*_*124 7 rest wordpress woocommerce wordpress-rest-api woocommerce-rest-api

我正在使用 WooCommerce REST API ( http://woocommerce.github.io/woocommerce-rest-api-docs/#introduction ) 并且可以成功下载客户、订单等。

我现在正在尝试获取订单的过滤列表,其中订单的修改日期在某个日期之后,但到目前为止还无法使其正常工作。获取订单的 GET 请求的响应包括:

"date_modified": "2016-12-21T00:33:38",
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

wp-json/wc/v1/orders?filter[modified]=2017-02-14
Run Code Online (Sandbox Code Playgroud)

但这只会返回所有订单。我想将 = 更改为 >= 以便它在指定日期之后获取所有订单,但无法找到如何为此构建请求 URL 的示例?

小智 5

这对我有用。使用 Woo 4.0.x / API v3 进行测试

add_filter('woocommerce_rest_orders_prepare_object_query', function(array $args, \WP_REST_Request $request) {
    $modified_after = $request->get_param('modified_after');

    if (!$modified_after) {
        return $args;
    }

    $args['date_query'][0]['column'] = 'post_modified';
    $args['date_query'][0]['after']  = $modified_after;

    return $args;

}, 10, 2);
Run Code Online (Sandbox Code Playgroud)

/wp-json/wc/v3/orders/?modified_after=2020-05-09T14:00:00

希望它能帮助某人。


use*_*124 -1

我能够使用以下请求格式来完成此工作:

wc-api/v1/orders?filter[updated_at_min]=2017-02-22&filter[updated_at_max]=2017-02-25

  • 在我使用 v2 REST API 进行测试时,这对我有用。您还可以尝试这样的操作: /wp-json/wc/v2/orders?after=2017-05-17T00:00:00Z&before=2017-05-17T23:59:59Z (3认同)