Intereting Posts
Безопасное сохранение кода (html / js ..) в базе данных Постоянная ссылка / Проблема с разбивкой на страницы: базовое имя категории совпадает с именем страницы почему этот скрипт не работает на моем сайте? создать структуру родительских и дочерних продуктов Gravity Forms Perks – Вложенные формы Используйте get_post_types для запроса только пользовательских типов сообщений Как получить пользовательские или отфильтрованные конечные точки в WordPress API? Отображение сообщений WordPress из почтового и пользовательского типа сообщений в пользовательской таксономии wpdb :: prepare был вызван неправильно что отличается между _x () и _ () Получите все видео Youtube из сообщений и вставьте их на другую страницу Inherit Featured Image From Page to Media Мой сайт WordPress использует локальный ip для указания на jquery и другие файлы, как его исправить? Есть ли какой-либо крючок для изменения медиа-html в сообщении? Однократное соединение, но вызываемое дважды

Использование API REST WordPress и WooCommerce в одном приложении Node

Я пишу небольшое приложение-утилиту, которое подключает сторонний API к магазину WooCommerce (на самом деле он многопользовательский, но это не очень важно), чтобы обновлять записи клиентов. В документах WooCommerce API указано, что свойство role доступно только для чтения, но мне нужно обновить роли, чтобы включить ролевую оценку на интерфейсе. Похоже, я могу редактировать роли, используя основной WordPress API , но я пишу это приложение, используя wc-api-node , который является оберткой узлов для API WooCommerce. Должен ли я использовать отдельную оболочку и / или метод для доступа к основному API WordPress после создания / обновления записи клиента или это то, что я мог бы обработать с woocommerce_rest_insert_customer действия woocommerce_rest_insert_customer ? (Примечание. Я в первую очередь разработчик узлов / JS, поэтому у меня нет много опыта работы с WordPress или WooCommerce.)

Я также рассматриваю возможность создания собственного плагина и использования системы WordPress cron для общения с сторонним API, но предпочел бы этого не делать.

Я думал, что поделюсь своим решением для тех, кто работает над подобной проблемой. Я перешел на node-wpapi и использовал REST Autodiscovery, чтобы использовать API WooCommerce и WordPress из одной библиотеки. Это можно сделать так:

 const wpapi = require('wpapi') let wp = new wpapi({ endpoint: 'http://your.wp.site/wp-json/', username: 'user', password: 'pass', auth: true, routes: routes }) let woo = wp.namespace('wc/v2') 

Где routes – это представление JSON маршрутов API REST. См. Здесь информацию об загрузке обертки API.

Затем я могу использовать оба API рядом друг с другом

 wp.users() .search('foo') // Search by (for example) username .param('context', 'edit') // Get additional fields .then(result => { let user = result[0] woo.customers().id(user.id) // Get WooCommerce specific fields .then(customer => { console.log('woo.customer', customer) }) })