Расширенное руководство по использованию Вордпресса — Софт Эйт Софт
Description: Как отправлять заказы и формы в фоне и настроить Вордпресс-плагин Вердж3Д с помощью Ява Скрипта.

# Расширенное руководство по использованию «Вордпресса»

Этот раздел содержит расширенное руководство по работе с «Вордпрессом». В частности, рассмотрены вопросы фоновой отправки заказов и форм, модификации плагина, а также приведена спецификация на протокол электронной коммерции, используемый в плагине. Если вам необходима информация об основах работы с «Вордпрессом», читайте раздел Плагин для Вордпресса руководства пользователя.

## Содержание

- Получение заказов в фоне с использованием REST API
  - Отправка форм с помощью FormData
  - Отправка форм с помощью JSON
- Отправка форм на почту
- Настройка форм электронной коммерции
- Спецификация на протокол электронной коммерции

#

## Получение заказов в фоне с использованием REST API

В ряде случаев вы можете использовать свой собственный интерфейс для отправки заказов, вместо перенаправления покупателей на страницу заказа.

Допустим в качестве примера, что стоит задача сделать конфигуратор столов. В этом случае отправляемые данные могут иметь вид:

`{ "user_name": "Иван Петров", "user_email": "иван.петров@пример.рф", "user_phone": "+123456789" "items": [ { "sku": "table_top_white", "quantity": 1 }, { "sku": "table_leg_brown", "quantity": 4 }, ] }`

Существует два способа создания заказов, основанных на приведённых данных:

1. С помощью ПОСТ-запросов и данных в формате FormData (версия v1)
2. С помощью ПОСТ-запросов и данных в формате JSON (версия v2)

#

### Отправка форм с помощью FormData

Для отпавки, создайте HTML-форму с полями, указанными выше и отправьте эту форму с помощью пазла send data на следующий адрес:

`https://ВП_ХОСТ/wp-json/verge3d/v1/place_order/`

Где ВП_ХОСТ это имя хоста «Вордпресс»-сервера, например sandbox.soft8soft.com

С помощью пазлов, поля формы, требующие ввода данных пользователем (напр. "user_name", "user_email", "user_phone") могут быть созданы следующим образом:

Тогда как поля с артикулами товара (SKU) делаются с помощью скрытых полей формы:

Форма отправляется без перезагрузки страницы следующим образом:

#

### Отправка форм с помощью JSON

Вы можете сформировать структуру данных в виде объекта «Ява Скрипта» и затем отправить её с помощью метода этого языка, называемого fetch(), однако с помощью словаря и пазла send data сделать это намного проще.

УРЛ-адрес для отправки в JSON-формате следующий:

`https://ВП_ХОСТ/wp-json/verge3d/v2/place_order/`

Где ВП_ХОСТ это имя хоста «Вордпресс»-сервера, например sandbox.soft8soft.com

В частности, пазлы для создания данного типа запросов могут иметь вид:

В примере используется пазл order item из вкладки E-Commerce, что позволяет существенно ускорить заполнение элементов заказа.

#

## Отправка форм на почту

«Вердж3Д для Вордпресса» предоставляет возможность оправки любых HTML-форм на адрес, выбранный в интерфейсе администрирования плагина. Таким образом, в частности, вы можете получать вопросы от потенциальных клиентов, сообщения для службы поддержки, предзаказы, контакты пользователей и т.д.

УРЛ-адрес для отправки форм на почту имеет вид:

`https://ВП_ХОСТ/wp-json/verge3d/v1/send_form/`

Где ВП_ХОСТ это имя хоста «Вордпресс»-сервера, например sandbox.soft8soft.com

Сама форма может быть реализована с помощью HTML/CSS, пазлов или визуального редактора, на подобие «Вебфлоу». Смотрите как создавать HTML-интерфейсы в соответствующем разделе документации. Кроме того, форма может быть отправлена напрямую, с помощью кнопки «Отправить» или косвенно, с помощью пазлов или «Ява Скрипта» (чтобы не перезагружать страницу).

Если вы используете пазлы, вы можете воспользоваться следующей конструкцией для отправки формы без перезагрузки (создание самой формы не показано):

Библиотека пазлов Inquiry Form содержит готовый пример, который можно использовать в качестве основы собственного приложения.

#

## Настройка форм электронной коммерции

Для изменения форм e-commerce скопируйте шаблоны форм, расположенные в каталоге templates плагина «Вердж3Д», в каталог вашей темы «Вордпресс», в подкаталог verge3d.

Например, если вам нужно изменить шаблон электронной почты заказа:

`КОРЕНЬ/wp-content/plugins/verge3d/templates/order_email_body.php → ТЕМА/verge3d`

Где КОРЕНЬ — это корневой каталог вашей установки «Вордпресса», а ТЕМА — каталог вашей текущей темы.

Вот список шаблонов, которые вы можете настроить:

Файл шаблона | Описание
--- | ---
order_email_body.php | Шаблон тела письма с заказом. Этот шаблон используется как для уведомлений о заказах, отправляемых вам, так и вашим клиентам.
order_pdf.php | Шаблон с PDF-вложением к электронному письму с заказом. Этот шаблон используется для создания HTML-файлов, которые будут преобразованы в PDF и прикреплены к электронным письмам с заказами.
order_form.php | Шаблон формы заказа. Эта форма отображается для ваших клиентов на страницах, где присутствует код [verge3d_order].
order_success.php | Сообщение, отображаемое при принятии заказа.
order_failed.php | Сообщение, отображаемое при отклонении заказа.
payment_paypal.php | Страница обработки заказа в платёжной системе «Пейпал».
send_form_email_body.php | Шаблон писем, сформированных для заказов, отправленных с помощью REST API.

### Меры безопасности

При использовании пользовательских форм в приложениях e-commerce не забудьте правильно экранировать выходные данные, отправляемые клиентами. Для получения дополнительной информации воспользуйтесь следующим руководством (англ.).

#

## Спецификация на протокол электронной коммерции

Пазлы place order и place order + используют следующий протокол для обработки заказов. Заказы отправляются из браузера на сервер с помощью HTTP POST-запросов со следующими параметрами:

POST-параметр | Описание
--- | ---
v3d_items | Пункты заказа. Массив со структурами, закодированный в формате JSON
v3d_attachments[] | Опциональные вложения заказа. Массив ссылок в формате Data URL.

Пункт заказа имеет конфигурацию, зависящую от используемого пазла. Для place order она имеет вид:

Поле | Описание
--- | ---
title | Название пункта заказа.
price | Цена пункта заказа.
quantity | Количество товара в пункте: число, вес, длина, и т.д.

Для пазла place order +:

Поле | Описание
--- | ---
sku | Артикул товара. Этот артикул используется как идентификатор чтобы получить информацию о продукте с сервера.
quantity | Количество товара в пункте: число, вес, длина, и т.д.

Более продвинутый протокол на основе JSON использует следующий набор параметров по умолчанию:

Поле JSON | Описание
--- | ---
user_name | Полное имя клиента (также используется как имя владельца карты).
user_email | Электронная почта клиента.
user_phone | Телефон клиента.
user_comment | Комментарии к заказу.
items | Массив с пунктами заказа.
attachments | Вложения. Опциональный массив со ссылками Data URL, содержащими вложения заказа.
user_address1 | Первая строка адреса владельца карты. Чтобы использовать это поле, активируйте опцию Billing address на вкладке General настроек плагина.
user_address2 | Вторая строка адреса владельца карты. Чтобы использовать это поле, активируйте опцию Billing address на вкладке General настроек плагина.
user_city | Город владельца карты. Чтобы использовать это поле, активируйте опцию Billing address на вкладке General настроек плагина.
user_state | Регион владельца карты. Чтобы использовать это поле, активируйте опцию Billing address на вкладке General настроек плагина.
user_country | Страна владельца карты. Чтобы использовать это поле, активируйте опцию Billing address на вкладке General настроек плагина.
user_postcode | Почтовый индекс владельца карты. Чтобы использовать это поле, активируйте опцию Billing address на вкладке General настроек плагина.
shipping_address1 | Первая строка адреса доставки. Чтобы использовать это поле, активируйте опцию Shipping address на вкладке General настроек плагина.
shipping_address2 | Вторая строка адреса доставки. Чтобы использовать это поле, активируйте опцию Shipping address на вкладке General настроек плагина.
shipping_city | Город доставки. Чтобы использовать это поле, активируйте опцию Shipping address на вкладке General настроек плагина.
shipping_state | Регион доставки. Чтобы использовать это поле, активируйте опцию Shipping address на вкладке General настроек плагина.
shipping_country | Страна доставки. Чтобы использовать это поле, активируйте опцию Shipping address на вкладке General настроек плагина.
shipping_postcode | Индекс доставки. Чтобы использовать это поле, активируйте опцию Shipping address на вкладке General настроек плагина.

## Остались вопросы?

Задавайте их на нашем форуме!