REST API woocommerce — не отображаются все клиенты в GET / customers

#wordpress #woocommerce #woocommerce-rest-api

#wordpress #woocommerce #woocommerce-rest-api

Вопрос:

Краткое описание проблемы

Я пытаюсь получить всех клиентов с помощью POSTMAN, используя последнюю версию woocommerce API (v3):

 GET/customers 
  

Тем не менее, возвращается только небольшой сегмент. Количество возвращенных клиентов составляет 28 (X-WP-Total), что намного меньше, чем 150 клиентов, которые у меня есть в системе.

У вас, ребята, есть какие-либо идеи о том, почему возвращается только подмножество всех клиентов, а не все? Имеет ли это какое-либо отношение к тому, как я настраиваю woocommerce? Или я просто неправильно использую API?

Что я пробовал

Моя цель — создать небольшое приложение для поиска клиента по телефону / электронной почте, а затем получать сделанные им заказы.

Вызов

 GET/customers 
  

Возвращает только небольшое подмножество всех клиентов, а остальные опущены.

пропущенные любые клиенты из GET / customers также вернут пустой массив, когда я, например, использую

 GET/customers?email=...
GET/customers?search=...
  

Запросы возвращают пустой массив для пропущенных клиентов, но
работает с клиентами, которые не были исключены из:

 GET/customers 
  

Тем не менее, учитывая известный пропущенный идентификатор клиента, можно найти этого клиента, отправив запрос на

 GET/customer/{ID} 
  

что вообще не имеет смысла.

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

1. Вы нашли какое-либо решение? Я также сталкиваюсь с той же проблемой. API отвечает только одному клиенту

Ответ №1:

Решение состоит в том, чтобы установить:

 GET/customers?role=all
  

Я понял, что GET / customers возвращает только клиентов по умолчанию, роль которых «customer».

Однако, поскольку я также использую членство / подписки, клиенту автоматически назначается новая роль («подписчик») всякий раз, когда он подписывается на членство. Поэтому этот клиент не будет включен в ответ, поскольку его роль больше не является «клиентом».

Надеюсь, это поможет всем, кто столкнется с такой же проблемой.

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

1. Не уверен, как role = all работает на одном сайте, но на нескольких сайтах при использовании этого отображается только мой собственный пользователь. У меня та же проблема, что и у вас, когда ни один клиент не попадает в список с использованием GET / customers по умолчанию, хотя они есть.

2. Я использовал драгоценный камень woocomerce_api, и у меня сработало следующее: $woocommerce.get('customers', orderby: 'id', filter: { role: 'all' }) . Мне пришлось вложиться role=all под filter .

3. Спасибо, чувак! Я был так смущен!