为啥 Woocommerce API GET 请求返回一个空的购物车项目列表

Posted

技术标签:

【中文标题】为啥 Woocommerce API GET 请求返回一个空的购物车项目列表【英文标题】:Why Woocommerce API GET request returns an empty cart items list为什么 Woocommerce API GET 请求返回一个空的购物车项目列表 【发布时间】:2022-01-05 07:25:50 【问题描述】:

我的 woocommerce 网站的 API_TEST 有问题。我目前正在构建一个使用 woocommerce 作为其后端的电子商务应用程序。我在我的 Cpanel 中编辑了一个 webhook 文件(class-wc-rest-webhooks-controller.php。)以启用“添加到购物车”功能。 (此处查看文件代码:https://github.com/Kings-Samuel/Kings-Samuel/blob/main/class-wc-rest-webhooks-controller.php.php)

现在,在 PostMan 上进行 HTTP 测试,POST 请求工作得很好。 GET 请求也很有效,但有一个问题。

如果我从我的 woocommerce 网站更新购物车,它将正确返回购物车项目。但是,如果我在使用 POST 请求更新购物车时尝试获取购物车项目,它会显示 200(成功)但拒绝向我显示购物车项目。它只是返回一个空的购物车列表。

因此,本质上,GET 请求仅在购物车从网站更新时才有效。从发布请求或应用程序更新购物车时,它不起作用。

请问可能是什么问题?以下是返回内容的 HHTP 和 JSON 详细信息...

HTTP/1.1 200 OK
keep-alive: timeout=5, max=100
content-type: application/json; charset=UTF-8
x-robots-tag: noindex
link: <https://jumbocheap.com/wp-json/>; rel="https://api.w.org/"
x-content-type-options: nosniff
access-control-expose-headers: X-WP-Total, X-WP-TotalPages, Link
access-control-allow-headers: Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type
allow: GET
vary: Origin,Accept-Encoding
cache-control: public, max-age=0
expires: Sat, 27 Nov 2021 19:00:50 GMT
content-length: 25
date: Sat, 27 Nov 2021 19:00:50 GMT
server: LiteSpeed
x-turbo-charged-by: LiteSpeed
connection: close


  "status": true,
  "data": []

【问题讨论】:

【参考方案1】:

我有办法解决这个问题。原来我曾经在class-wc-rest-webhooks-controller.php文件中使用小写而不是骆驼小写来声明变量。

现在,我的购物车运行良好

【讨论】:

以上是关于为啥 Woocommerce API GET 请求返回一个空的购物车项目列表的主要内容,如果未能解决你的问题,请参考以下文章

当 OPTIONS 请求的 statusCode 为 200 时,为啥我会在 API Gateway GET 请求中收到 CORS 错误?

Angular 4 和 Woocommerce API。 Http GET 有效,但 http POST 无效

Woocommerce Rest API:错误:请求中发生错误,当时无法发送消费者数据

Woocommerce 购物车休息 API

如何在 Woocommerce API 中添加 CORS 标头

Woocommerce API(Woo Dashboard github)