通过Woocommerce API V2更新库存

Ray*_*Zor 1 php api wordpress codeigniter woocommerce

我正在尝试通过API界面更新我的woocommerce商店的库存水平.我正在使用kloon/WooCommerce-REST-API-Client-Library但不幸的是它似乎只是阅读产品信息而且不允许我PUT股票信息.

阅读API文档,我可以看到我可以使用以下内容更新产品:

curl -X PUT https://example.com/wc-api/v2/products/546 \
    -u consumer_key:consumer_secret \
    -H "Content-Type: application/json" \
    -d '{
  "product": {
    "regular_price": "24.54"
  }
}'
Run Code Online (Sandbox Code Playgroud)

但是,如果API客户端库中的函数没有访问产品的PUT功能,我已经为V2 api rodolfojnn/WooCommerce-REST-API-Client-Library找到了一个修改过的客户端库,它更新了PUT功能:

/**
* Update a product by id
* @param int $product_id
* @param array $data
* @param string $method
* @return mixed|json string
*/
    public function update_product($product_id, $data, $method = "PUT") {

        return $this->_make_api_call('products/' . $product_id, ['product' => $data], $method);
}
Run Code Online (Sandbox Code Playgroud)

但是现在抛出一个Parse错误:语法错误,由于['product'=> $ data]位而出现意外'['错误- 我尝试将其转换为数组,但这也是错误,任何人都知道为什么(我是在codeigniter中运行此btw)

小智 5

尝试修改

public function update_product($product_id, $data, $method = "PUT") {

    return $this->_make_api_call('products/' . $product_id, $data, $method);
}
Run Code Online (Sandbox Code Playgroud)

仅将$ data作为第二个参数传递给update_product

$data=  json_encode(

    array( 'product' =>

       array( 
          'regular_price'        => "10.26",
          'managing_stock'   => true,
          'in_stock'         => true,
          'stock_quantity'   => 45
       )
    )
);
Run Code Online (Sandbox Code Playgroud)