Woocommerce REST API将属性meta_data显示为slugs



我依靠Woocommerce REST API有两个不同的目的——一个是通过发货平台ShippingEasy,另一个是将订单信息输入到google电子表格中的定制解决方案。在检索订单信息时,我注意到可变产品属性是作为标识符出现的,而不是作为区分大小写的名称。

为了确保没有bug或冲突的插件,我执行了一个干净的安装,添加了几个测试产品,然后通过API使用postman拉出订单。果然,Woocommerce将slug作为值而不是名称。下面是GET

返回的一个小示例
"line_items": [
{
"id": 3,
"name": "Test Product - Black, Small",
"product_id": 26,
"variation_id": 29,
"quantity": 1,
"tax_class": "",
"subtotal": "6.00",
"subtotal_tax": "0.00",
"total": "6.00",
"total_tax": "0.00",
"taxes": [],
"meta_data": [
{
"id": 29,
"key": "pa_color",
"value": "color-black"
},
{
"id": 30,
"key": "pa_size",
"value": "size-small"
},
{
"id": 31,
"key": "Clip ($5.00)",
"value": "Upgrade"
}
],
"sku": "TEST",
"price": 6
}
],

可以看到,在"meta_data", "key"(属性名)显示了空格和"值";(选定的属性项)也显示了段。你可以注意到&;id&;29和30都是全局属性,因此它将pa_值附加到"键"上。也有趣的是,如果您在本地(在产品清单中)创建属性,GET将显示"meta_data";"key"作为鼻涕虫,却有"价值"。将显示为区分大小写的名称。你可能会注意到"id"31同时显示"value"one_answers";key"使用区分大小写的名称-这些来自Add-ons插件。

似乎meta_data "key"one_answers";value"应该能够显示为区分大小写的名称。是否有可能使用functions.php中的函数来解决这个问题?

现在看起来API在meta_data中提供了display_keydisplay_value,它为每个返回name而不是slug。奇怪的是,这还没有在API文档中,一定是最近添加的,我在测试一个随机GET请求时偶然发现的。

相关内容

最新更新