WooCommerce Reactive Account
Сверхбыстрое приложение React ЛК WooCommerce с расширяемой функциональностью.
Использует пользовательский API, который является сверхбыстрым и позволяет получить доступ ко всей учетной записи.
Руководство разработчика
Как мы проверяем подлинность интерфейсных запросов
Когда приложение React отрисовывается, на странице появляется глобальный объект JS
__kvgwoo_react_account
который обладает следующими свойствами для использования:
UID: "1"
blog: "1"
debug: "1"
i18n: {Dashboard: "Dashboard", Orders: "Orders", My Subscription: "My Subscription", ...}
is_ssl: ""
nonce: ""
signature: ""
url: ""
Здесь i18n - это ассоциативный массив (или фактически объект JS), где мы предоставляем локализованные строки для исходных ключей EN. UID - идентификатор пользователя WP, blog - текущий блог
Важными
для аутентификации частями являются
- одноразовый ключ (nonce)
- секретная фраза (signature)
Эти два параметра всегда должны присутствовать в теле запроса.
И эти параметры не должны быть hardcoded (всегда используйте __kvgwoo_react_account.nonce и __kvgwoo_react_account.signature)
Однако есть еще несколько параметров, которые необходимо обязательно включать при отправке post-запросов в api, отличный от WP. Это: UID, blog и action
Пример запроса jQuery POST для получения информации о заказах клиента:
$.post(
__kvgwoo_react_account.url,
{
signature: __kvgwoo_react_account.signature,
nonce: __kvgwoo_react_account.nonce,
UID: __kvgwoo_react_account.UID,
blog: __kvgwoo_react_account.blog,
action: 'get_orders'
},
data => {
console.log( data )
}
);
Описание API
Все запросы должны отправляться на конечную точку __kvgwoo_react_account.url. Все запросы являются только POST-запросами (как и запросы к WP admin-ajax.php)
Еще раз: каждый запрос к API, отличному от WP, должен содержать эти параметры в теле JSON:
UID
WP user IDblog
WP blog IDnonce
Secured noncesignature
Secured signatureaction
Action to perform
Доступные действия и параметры
Дополнительные параметры могут быть (а могут и не быть) просто добавлены в тело запроса (при необходимости)
Запросы на получение инфо
get_orders
- Перечисление всех заказов клиента Woo с разбивкой по страницам и оформлением заказа. Ответ содержит все заказы, элементы заказа, метаданные заказа и метаинформацию элемента заказа. Также соответствующие данные о подписках (если таковые имеются). Для получения более подробной информации - смотрите пример ответа.
ПРИМЕЧАНИЕ: все даты указаны в формате UNIXTIMESTAMP начиная с версии 1.2
-
Параметры: offset, pagesize, orderby, order, single
-
get_subscriptions
-
Все клиентские подписки с разбивкой на страницы и упорядочением. То же, что и get_orders.
-
Параметры: offset, pagesize, orderby, order, single
-
get_user_info
-
Информация об учетной записи клиента (включая все метаданные клиента), которая может быть использована для редактирования.
-
get_exchange_products
-
Перечислите все продукты для обмена, исключая те, которые включены в подписку
-
Параметры: subscription_id*
-
get_exchange_intervals
-
Получить интервалы обмена для подписки, исключая текущий интервал. Зависит от текущих элементов подписки. Возвращает массив интервалов в формате 4_week (interval_period).
-
Параметры: subscription_id*
-
get_subscription_delivery
- Перечислены все доступные способы доставки для подписки, чтобы выполнить их обмен. Возвращает массив
[
{
"method_id" : "", // int
"title" : "",
"price" : "", // float
"price_html": "", // string
}
]
-
Параметры: subscription_id*
-
При возврате пустого результата
{ "result" : false }
Запросы на изменение инфо
set_user_info
- Обновление информации учетной записи. Принимает объекты “meta” для обновления мета-значений и “data” для обновления первичных пользовательских данных (пользователь/логин, адрес электронной почты, пароль, отображаемое имя) с параметрами key:value.
“data” object (если он отправлен) обновляет основную информацию о пользователе: user_email, account_email, user_password
При успешном завершении возвращает обновленную информацию об учетной записи, как указано выше, или { result: false, error: "Error message" }
-
Параметры: meta, data
-
set_subscription_status
- Статус, устанавливаемый для подписки: active | on-hold | cancel При успешном завершении возвращает обновленный JSON для одной подписки или
{ result: false, error: "Error message" }
Если указано “cancel_reason”, оно сохраняется в метаданных подписки.
-
Параметры: subscription_id*, new_status*, reason
-
set_next_delivery_date
-
Изменение следующей даты доставки на предпочтительную. Формат: ГГГГ-ММ-ДД
-
При успешном завершении возвращается обновленный JSON подписки JSON или
{ result: false, error: "Error message" }
-
Параметры: subscription_id*, new_date*
-
set_new_interval
- Измените интервал подписки на новый. Формат: 4_week | 2_month
- При успешном завершении возвращает обновленный JSON подписки или
{ result: false, error: "Error message" }
-
Параметры: subscription_id*, new_interval*
-
set_order_info
- Обновляет метаинформацию заказа для любых доступных пар ключ:значение.
- При успешном завершении возвращает обновленный JSON одиночного заказа или
{ result: false, error: "Error message" }
-
Параметры: subscription_id*, new_interval*
-
set_subscription_info
- Обновляет метаинформацию о подписке для любых доступных пар ключ:значение.
- При успешном завершении возвращает обновленный одиночный JSON или
{ result: false, error: "Error message" }
-
Параметры: subscription_id*, info*
-
set_subscription_delivery
- Обновляет способ доставки для подписки, пересчитывает цены доставки, обновляет итоговые данные по подписке. В случае успеха возвращает обновленный одиночный JSON для подписки или
{ result: false, error: "Error message" }
- Параметры: subscription_id*, method_id*
Дополнительно
-
describe
-
Описывает все возможные точки входа в API
-
send_mail
- Отправляет сообщение на адрес электронной почты администратора продавца с предоставленными данными.
- Поддерживается следующий формат данных:
{
"topic":"Simple string",
"content":"Text/html content",
"from":"reply@to.email"
}
Returns { “result”:true } or { “result”: false, “error”:“message” }
- Параметры: from*, topic*, content*
Журнал версий
-
1.5.9
- Обновлять статус подписки при смене способа оплаты из личного кабинета.
-
1.5.8
- Добавлена страница настроек для учетной записи react на странице настроек Woocommerce
- Добавлен текст пользовательской кнопки на внутренней странице
-
1.5.7
- Добавлено пользовательское поле для баллов Woocommerce и вознаграждений “У вас недостаточно баллов”.
-
1.5.6
- Обновленные переводы.
-
1.5.5
- Важное исправление для WCS - незапланированные действия при приостановке/отмене подписок.
- Исправлена ошибка отображения не удаленных подписок и заказов в разделе “Мой аккаунт”.
-
1.5.4
- Обновлены переводы в представлении заказы/ подписки.
-
1.5.3
- Кнопка изменения способа оплаты и URL-адрес
-
1.5.2
- Важное исправление: обновление пароля и электронной почты с помощью встроенного способа WP
-
1.5.1
- Правильный тип электронной почты (html) при отправке по электронной почте при отмене/возобновлении/приостановке
- Перенести подписку, когда статус вернется к активному (всегда)
- Отправлять подтверждение по электронной почте о любых действиях по подписке
-
1.5
- Цены на подписку указаны с учетом налогов.
-
1.4.1
- Исправлено использование специальных символов в ответе API
-
1.4
- Важное исправление: исправлены ошибки в датах подписки и интерфейсе календаря
- Добавлен текст под текстом доставки
- Добавлена мера длительности на странице приветствия
-
1.3
- Важное исправление: измените данные о выставлении счетов / доставке для всех активных подписчиков
-
1.2
- Новые React API end-points: список способов доставки и их изменение
- Новое расширение WP Api для доступа к WP + Woo
- Все даты теперь отображаются в формате UNIXTIMESTAMP при получении данных о подписке или заказе
- Автоисправление для неправильно запланированных подписок
-
1.1
- Изменение даты доставки из моей учетной записи не запускает обновление
- Автоперенос всех событий, связанных с не отмененными подписками
-
1.0
- Первоначальная реализация оригинальной идеи.