Как добавить meta_data для клиента WooCommerce - PullRequest
0 голосов
/ 12 ноября 2018

И я пытаюсь обновить клиента, которому требуется PUT-запрос к серверу. Вот код для инициализации API REST WooCommerce:

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 ??? Как я могу обновить метаданные клиента?
Я также пытался использовать устаревшие версии woo (например, 'wc / v2', 'wc / v1'), но они даже не обновляют first_name.

1 Ответ

0 голосов
/ 06 августа 2019

Как вы и предполагали, неправильный формат ввода мета. По некоторым причинам для обновления метаданных необходим двойной массив:

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

Смотрите также здесь: https://github.com/woocommerce/woocommerce/issues/18810

Вы должны были получить ошибку типа «неверный входной параметр» или что-то подобное. Пожалуйста, регистрируйте не только res, но и err в вашем коде.

...