Woocommerce API Показывает заказы, обновленные после определенной даты

#woocommerce #woocommerce-rest-api

#woocommerce #woocommerce-rest-api

Вопрос:

Я ищу способ получить список заказов, которые обновляются после определенной указанной даты. Я использую Woocommerce REST API для доступа к этим заказам. В документах API я нахожу, что в вызове GET есть параметр ‘after’, но он фильтрует только заказы, опубликованные после определенной даты, а не обновленные.

Большое спасибо!

Ответ №1:

Обновленный ответ:
Добавьте следующий код в пользовательский плагин.

 function modify_orders_after_query($request) {
    $request['date_query'][0]['column'] = 'post_modified';
    return $request;
}

add_filter( "woocommerce_rest_shop_order_query", 'modify_orders_after_query' );
  

Затем вы можете сделать запрос GET на свой URL-адрес API, что-то вроде этого:
http://example.com/wp-json/wc/v1/orders?after=2016-10-10T10:10:10Z

Обратите внимание: Пожалуйста, протестируйте перед использованием этого метода.

Наследие:
Это может быть достигнуто с updated_at_min помощью .
Пожалуйста, проверьте wp-contentpluginswoocommerceincludesapiclass-wc-api-resource.php : Line 157 и wp-contentpluginswoocommerceincludesapiclass-wc-api-orders.php : Line 723

Комментарии:

1. Спасибо за ответ. Я нахожу эти файлы только на картах legacy / v1-2-3, а не в файлах, использующих REST API. Есть какие-либо подсказки, как этого добиться, используя этот новейший REST API?

2. @Axel Извините, я использовал v3 и дал ответ на это. Обновленный ответ. Пожалуйста, проверьте.

3. спасибо за обновление. Должен ли я включить этот код в class-wc-rest-orders-controller.php досье? И как будет выглядеть вызов API?

4. @Axel Нет. Если вы отредактируете файл woocommerce, он будет заменен при следующем обновлении wc. Поэтому создайте новый плагин, как в этой ссылке . активируйте его. Затем используйте запрос. Я обновил ответ на вопрос «Как выглядит вызов API».

5. @Manumie в версии 2 используется не woocommerce_rest_shop_order_query, а woocommerce_rest_orders_prepare_object_query

Ответ №2:

Мне удалось решить проблему, используя советы выше. Добавлена папка с файлом в папке плагина с тем же именем и следующим содержимым:

 <?php
/**
 * Plugin Name: wooCommerceFilter
 * Description: Change the ORDER API endpoint to consider date_modified.
 * Version: 1.0
 */

function modify_orders_after_query($request) {
    $request['date_query'][0]['column'] = 'post_modified';
    return $request;
}

add_filter( "woocommerce_rest_orders_prepare_object_query", 'modify_orders_after_query' );


?>