Woocommerce REST API 显示属性 meta_data 作为 slug

Woocommerce REST API display attributes meta_data as slugs

我依赖 Woocommerce REST API 用于几个不同的目的——一个是通过运输平台 ShippingEasy,另一个是将订单信息放入 google 电子表格的自定义解决方案。检索订单信息时,我注意到变量产品属性以 slug 的形式出现,而不是区分大小写的名称。

为了确保没有错误或插件冲突,我执行了全新安装,添加了几个测试产品,然后使用邮递员通过 API 提取了订单。果然 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 (.00)",
                    "value": "Upgrade"
                }
            ],
            "sku": "TEST",
            "price": 6
        }
    ],

如您所见,在“meta_data”下,“key”(属性名称)显示了 slug,“value”(选定的属性术语)也显示了 slug。您可能会注意到“id”29 和 30 都是全局属性,因此它也将 pa_ 值附加到“key”。有趣的是,如果您在本地(在产品列表中)创建属性,GET 会将“meta_data”“key”显示为 slug,但“value”将显示为区分大小写的名称。您可能会注意到“id”31 显示的是区分大小写的名称“value”和“key”——这些来自附加组件插件。

看来meta_data“键”和“值”应该可以显示为区分大小写的名称。是否可以使用 functions.php 中的函数解决此问题?

现在看起来 API 在 meta_data 中提供 display_keydisplay_value,returns name 而不是slug 每个。奇怪的是,这还没有出现在 API 文档中,并且必须是最近添加的,这是我在测试随机 GET 请求时偶然发现的。