WooComemrce Rest API是否提供更新元字段的方法?
他们有一个扩展,它增加了在使用元字段发货时为订单添加跟踪编号的功能,但是没有任何关于如何或是否可以通过他们的REST使用此信息更新订单的元字段的文档API。
答案 0 :(得分:6)
它很糟糕(完全没有阅读)记录了如何做到这一点。以下是如何为普通元字段执行此操作:
curl -X PUT "https://somesite.com/wc-api/v2/orders/124?filter[meta]=true" -u ck_yourconsumerkey:cs_yourconsumersecret -H "Content-Type: application/json" -d
'{
"order": {
"order_meta": {"meta_key":"meta_value"}
}
}'
以下划线开头的元字段受到保护,无法通过API更新。但是,根据this GitHub issue,下一版本的WooCommerce应该支持更新受保护的元字段,只要它们不是WooCommerce内部值。
订单的其他部分有Meta字段,例如客户和商品,但是我需要一段时间才能再次查询这些信息,这个问题专门针对订单级元字段。
编辑:WooCommerce改变了主意并关闭了GitHub案例,表示他们不允许访问这些字段。不幸的是,这使得WooCommerce成为唯一一个无法通过API向订单添加跟踪信息的购物车,而且没有可怕的黑客解决方法。
答案 1 :(得分:1)
您可以使用带有额外“ meta_data”字段的“ / wp-json / wc / v3 / orders”端点的HTTP POST请求,如以下curl命令所示。使用“用于Woocommerce版本3.0的REST API”对此进行了测试
curl --request POST \
--url https://yourserver.com/wp-json/wc/v3/orders \
--header 'authorization: Basic <credentials>' \
--header 'content-type: application/json' \
--data '{
"line_items": [
{
"product_id": 425,
"quantity": 1
}
],
"meta_data":[
{
"key": "custom key",
"value": "custom value"
}
]
}'
答案 2 :(得分:0)
是的,这是可能的。使用REST API for Woocommerce 3.0版,我在最新文档here中描述的端点上使用以下json添加了自定义订单跟踪和运营商字段。
{
"create":[],
"update": [
{
"id": 77248,
"status": "shipping",
"meta_data":[
{
"key": "package_carrier",
"value": "USPS First Class"
},
{
"key": "tracking_number",
"value": "12354LKJSDF"
}
]
}
]
}
这显然是使用订单批量更新,但是,这仍应适用于单个订单端点。
因为我不包括&#34; id&#34;字段,它创建一个新的。我相信更新字段,你需要提供&#34; id&#34;字段。