REST API woocommerce - 未在 GET/customers 上显示所有客户

Den*_*yen 4 wordpress woocommerce woocommerce-rest-api

问题总结

我正在尝试使用最新的woocommerce API (v3)通过POSTMAN获取所有客户

GET/customers 
Run Code Online (Sandbox Code Playgroud)

然而只返回一小段。返回的客户数量为 28 ( X-WP-Total ),远少于我在系统中拥有的 150 多个客户。

你们对为什么只返回所有客户的一部分而不是所有客户有什么想法吗?这与我如何配置 woocommerce 有什么关系吗?还是我只是错误地使用了 API?

我试过的

我的目标是创建一个小应用程序,通过电话/电子邮件查找客户,然后获取他所做的订单。

打电话

GET/customers 
Run Code Online (Sandbox Code Playgroud)

仅返回所有客户的一小部分,其余部分被省略。

例如,当我使用时,从GET/ customers 中省略的任何客户也将返回一个空数组

GET/customers?email=...
GET/customers?search=...
Run Code Online (Sandbox Code Playgroud)

请求在省略的客户上返回一个空数组,但对未从以下位置省略的客户有效:

GET/customers 
Run Code Online (Sandbox Code Playgroud)

然而,给定一个已知的省略的客户 ID,可以通过向以下地址发送请求来查找该客户

GET/customer/{ID} 
Run Code Online (Sandbox Code Playgroud)

这完全没有意义。

Den*_*yen 9

解决方法是设置:

GET/customers?role=all
Run Code Online (Sandbox Code Playgroud)

我认为 GET/customers 仅默认返回角色为“客户”的客户。

但是,由于我也使用会员/订阅,因此每当客户选择加入会员时,他们都会自动获得分配的新角色(“订阅者”)。因此,该客户不会包含在响应中,因为他的角色不再是“客户”。

希望这可以帮助任何偶然发现同样问题的人。

  • 不确定 role=all 在单个站点上如何工作,但多站点在使用此功能时仅列出我自己的用户。我遇到了与您相同的问题,即使有一些客户,也没有使用默认的 GET /customers 列出客户。 (2认同)