#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. Спасибо, чувак! Я был так смущен!