更新订单 WooCommerce API PHP CURL
Posted
技术标签:
【中文标题】更新订单 WooCommerce API PHP CURL【英文标题】:Updating order WooCommerce API PHP CURL 【发布时间】:2015-03-12 00:21:18 【问题描述】:我正在为我的同事开发一个 Web 应用程序,因此他们将拥有一台带有应用程序的 iPad,以打包我们的订单。
整个应用程序即将完成,最后的步骤之一是将订单状态从处理中更改为完成。
我在做什么:
获取当前订单 ID,然后使用 curl 或 API 更改状态。发生的事情很奇怪,我得到了 JSON 数据,并且更新了 completed_at 时间,但状态仍在处理中。
下面你会看到我的代码:
$data = array("status" => "completed");
$data_string = json_encode($data);
$username = 'XXX'; // Add your own Consumer Key here
$password = 'XXX'; // Add your own Consumer Secret here
$ch = curl_init('https://www.deallerleukste.nl/wc-api/v2/orders/5764?consumer_key='.$username.'&consumer_secret='.$password);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
echo $result;
有人看到我做错了吗?请帮忙!
问候,
杰尔默
【问题讨论】:
【参考方案1】:尝试使用此代码
$data=' "order": "status": "completed" ';
或
动态
$data=json_encode( array( 'order' => array( 'status' => $status)));
在 $status 中你可以传递你想要的状态。
【讨论】:
【参考方案2】:我看到这是一个很老的帖子,但今天我遇到了同样的问题,所以也许它很有用。
你必须在这里使用 PUT 而不是 POST:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
并且数据应该是这种格式的有效 JSON:
$data='"status": "completed"';
【讨论】:
以上是关于更新订单 WooCommerce API PHP CURL的主要内容,如果未能解决你的问题,请参考以下文章
需要帮助和信息有关Woocommerce创建订单API的提示
Woocommerce Subscription 使用 API 从订单 id 获取 id
在 Woocommerce 中自动将订单状态从处理更改为完成
需要帮助和信息有关 Woocommerce 创建订单 API 的提示