首页 > 解决方案 > 如何将 meta_data 添加到 WooCommerce 客户

问题描述

我正在尝试更新需要向服务器发送 PUT 请求的客户。这是初始化 WooCommerce REST API 的代码:

var WooCommerceAPI = require('woocommerce-api');

var WooCommerce = new WooCommerceAPI({
  url: 'http://example.com',
  consumerKey: 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  consumerSecret: 'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
});

这是更新客户的代码:

var data = {
 "meta_data":[
  {
  "key": "stores",
  "value": "food"
  }
 ],
 "first_name": "name"
}

WooCommerce.put('customers/5', data, function(err, data, res) {
  console.log(res);
});

上面的代码更新了客户的“first_name”,但没有向客户的“meta_data”部分添加任何内容。关于为什么的任何想法?
我猜 PHP 文件没有更新元数据或者我的 meta_data 输入格式有问题???如何更新客户的 meta_data?
我也尝试过使用旧版 woo 版本(例如,'wc/v2'、'wc/v1'),但这些版本甚至不会更新 first_name。

标签: phpwordpresswoocommercewoocommerce-rest-api

解决方案


如您所料, meta 的输入格式是错误的。由于某些原因,更新元数据需要双数组:

'meta_data' => array(
                array(
                    'key' => $meta_key,
                    'value' => $meta_value
                ))
 ))

另请参阅:https ://github.com/woocommerce/woocommerce/issues/18810

您应该收到类似“输入参数无效”或类似的错误。请在您的代码中不仅要记录,res还要记录。err


推荐阅读