2016-04-02 3 views
8

Доступ к пользовательским полям для заказов, продуктов, клиентов через WooCommerce REST API? Если не изначально, то какие плагины или обходные пути или хаки там работают? Благодаря!Пользовательские поля API REST API WooCommerce

+0

Что вы конкретно пытаетесь сделать, это не распространяется на их [документацию] (https://woothemes.github.io/woocommerce-rest-api-docs/)? Это задало бы более конкретный вопрос. – helgatheviking

+0

Пользовательские поля, которые обычно добавляются другими плагинами, например, типами заказов. Или, если я хочу создать настраиваемое поле для заказа, используя вызов API. – Amjad

+1

Вам необходимо выкопать код в файлах plugins/woocommerce/includes/api/*. Php', найти правильное действие или перехватить фильтр и использовать его. Например, когда WooCommerce создает заказ через API, после создания заказа он предлагает следующий hook 'do_action ('woocommerce_api_create_order', $ order-> id, $ data, $ this);' в этом случае у вас есть доступ к '$ data', вы можете извлечь свои собственные значения полей и обработать их. –

ответ

10

Отвечая на мой собственный вопрос:

Можно, используя следующие: (используя v3 унаследованного API)

Для отправки пользовательских полей обратно на сервер: (для заказов)

{ 
    "order_meta": { 
    "key": "value" 
    } 
} 

Для того, чтобы получить собственные файлы с сервера, используйте этот фильтр с вашей конечной точкой:

http://www.example.com/wc-api/v3/orders?filter[meta]=true 

Это работает и для продуктов.

+0

Можете ли вы указать на документы, где это задокументировано. Я борюсь с одной и той же проблемой, и я почти в тупике. –

+0

Не документировано на страницах API WooCommerce. Я получил ответ от своих проблем. Это поле является скрытым мета-полем. Если у вас есть конкретный вопрос, вы можете задать здесь. – Amjad

+0

У нас есть Пользовательский таксономия 'Статус', назначенный каждому продукту, который я хотел бы получить с помощью API Rest, но я не знаю, как построить строку запроса, чтобы получить данные назад –

0

Как указано в комментарии после того, как WooCommerce создает заказ через API, он запустит крюк woocommerce_api_create_order, вы можете использовать его.

Добавьте следующий код в файл functions.php вашей темы

add_action('woocommerce_api_create_order', 'my_woocommerce_api_create_order', 10, 2); 

function my_woocommerce_api_create_order($order_id, $data) { 

    // $data contains the data was posted, add code to extract the required 
    // fields and process it as required 

} 

Аналогично рассмотрим код в plugins/woocommerce/includes/api/*.php файлов, найти подходящее действие или фильтра Крючок для конечной точки и использовать его.

+0

Чтобы понять структуру базы данных, см. [Схема WooCommerce] (https://github.com/woocommerce/woocommerce/wiki/Database-Description) и [Схема WordPress] (https://codex.wordpress.org/images /2/25/WP4.4.2-ERD.png). Метаданные WordPress позволяют настраивать пары ключ/значение. –

Смежные вопросы