11 месяцев назад История
README.md

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 ID
  • blog WP blog ID
  • nonce Secured nonce
  • signature Secured signature
  • action 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

    • Первоначальная реализация оригинальной идеи.
Описание

Ультра быстрый ЛК (на React) для WooCommerce

Конвейеры
0 успешных
0 с ошибкой