Skip to content

Commit

Permalink
Параметры и описание плагина
Browse files Browse the repository at this point in the history
  • Loading branch information
ivannin committed May 1, 2022
1 parent 1c09db0 commit 18f5d22
Show file tree
Hide file tree
Showing 4 changed files with 218 additions and 28 deletions.
52 changes: 48 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
Turboshop Orders
----------------
================

Версия 0.1

Плагин для регистрации в WooCommerce заказов, сделанных в магазине Яндекс.Турбо

Expand All @@ -8,7 +10,49 @@ Turboshop Orders
и ожидает подтверждение принятия заказа или отказ. Информации о покупателе передается
после подтверждения заказа в уведомлении о новом статусе заказа.

Подробнее: https://yandex.ru/dev/turbo-shop/doc/settings/order-accept.html
Подробнее: https://yandex.ru/dev/turbo-shop/doc/settings/shop-api.html

Этот плагин реализует конечные точки для принятия такой информации и регистрации
заказа в WooCommerce. Конечные точки следующие
1. https://example.com/wp-json/turboshop_orders/v1/order/accept -- Принятие заказа
2. https://example.com/wp-json/turboshop_orders/v1/order/status -- Обновление заказа

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


Установка и настройка плагина
-----------------------------

1. Скачайте последнюю версию плагина со страницы [релизов плагина](https://github.com/ivannikitin-com/turboshop-orders/releases).
2. Штатно установите плагин в WordPress и активируйте его.
3. Подключите Ваш магазин к Яндекс.Турбо согласно [инструкции](https://yandex.ru/dev/turbo-shop/doc/quick-start/markets.html).
4. Откройте в панели [Яндекс.Вебмастер](https://webmaster.yandex.ru/) свой сайт и перейдите на страницу
"Турбо‑страницы для интернет-магазинов → Настройки → Настройки API".
5. Включите настройки API и скопируйте (сохраните) токен.
6. Откройте страницу настроек плагина "WooCommerce → Настройки → Яндекс.Турбо" и введите там полученный токен, сохраните изменения.
7. На странице Настройки API Яндекс.Вебмастера в поле "URL для запросов API" введите следующее значение:
```
https://ВАШ_ДОМЕН.РУ/wp-json/turboshop_orders/v1
```
`ВАШ_ДОМЕН.РУ` следует заменить на домен вашего магазина. Обязательно сохраните изменения.


Отладка
-------

Для отладки работы плагина необходимо установить константу `WP_DEBUG` в состояние `true` и передавать
заказы с полем `fake` со значение `true`. Иначе такие заказы в режиме `WP_DEBUG == false` сразу же удаляются.


Переводы на другие языки
------------------------

Плагин может быть переведен (локализован) на любой язык. Для этого необходимо использовать шаблон переводов [turboshop_orders.pot](lang/turboshop_orders.pot). Поместите файлы перевода в папку `lang` и плагин подключит их автоматически.


Обратная связь и сообщения об ошибках
-------------------------------------

Этот плагин реализует конечную точку для принятия такой информации и регистрации
заказа в WooCommerce.
Мы с благодарностью принимаем любые сообщения об ошибках, любые комментарии и предложения по развитию плагина на странице
[Issues](https://github.com/ivannikitin-com/turboshop-orders/issues) репозитория плагина.
76 changes: 53 additions & 23 deletions classes/settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,44 +5,74 @@
namespace Turboshop_orders;

class Settings {
/**
* Параметры по умолчанию
* Используем статичную переменную, так как константы класса не могут быть массивом
*/
private static $DEFAULTS = array(
'token' => '546df3as346fasd6f2312'
);

/**
* Конструктор класса
*/
public function __construct() {
// Хуки

add_filter( 'woocommerce_settings_tabs_array' , array( $this, 'get_settings_tabs' ), 50 );
add_filter( 'woocommerce_settings_tabs_'.TURBOSHOP_ORDERS , array( $this, 'settings_tab' ) );
add_filter( 'woocommerce_update_options_'.TURBOSHOP_ORDERS , array( $this, 'update_settings' ) );
}

/**
* Чтение параметра настроек
* @param string $param Имя параметра
* @return mixed Возвращает значение параметра или null
* @return mixed Возвращает значение параметра или false
*/
public function get( $param ) {
// Если массив настроек пустой, значит нужно загрузить настройки
if ( !$this->settings || 0 == count( $this->settings ) ) $this->load_settings( self::$DEFAULTS );

// Проверяем наличие параметра
if ( !array_key_exists( $param, $this->settings ) ) return null;

// Возвращает параметр
return $this->settings[ $param ];
return get_option( TURBOSHOP_ORDERS . '_' . $param );
}

/**
* Загрузка параметров плагина
* @param mixed $defaults Параметры по умолчанию
*/
private function load_settings( $defaults ) {
$this->settings = $defaults;
}
* Метод возвращает массив табов в настройках WooCommerce
*
* @param mixed $$settings_tabs Массив с параметрами табов
* @return mixed
*/
public function get_settings_tabs( $settings_tabs ) {
$settings_tabs[ TURBOSHOP_ORDERS ] = __( 'Яндекс.Турбо', TURBOSHOP_ORDERS );
return $settings_tabs;
}

/**
* Метод возвращает массив полей настроек
* @return mixed
*/
private function get_settings_fields() {
return array(
'section_title' => array(
'name' => __( 'Подключение Турбо‑страниц для интернет-магазинов' , TURBOSHOP_ORDERS ),
'type' => 'title',
'desc' => __( 'Эта настройка позволяет регистрировать заказы, сделанные в Яндекс.Турбо, в базе WooCommerce.', TURBOSHOP_ORDERS ) . ' ' .
__( 'Для работы необходимо получить токен в разделе "Турбо‑страниц для интернет-магазинов / Настройки / Настройка API" Яндекс.Вебмастер.', TURBOSHOP_ORDERS ),
'id' => TURBOSHOP_ORDERS . '_section_title'
),
'token' => array(
'name' => __( 'Токен', TURBOSHOP_ORDERS ),
'type' => 'text',
'desc' => __( 'Введите значение полученного токена', TURBOSHOP_ORDERS ),
'id' => TURBOSHOP_ORDERS . '_token'
),
'section_end' => array(
'type' => 'sectionend',
'id' => TURBOSHOP_ORDERS . '_section_end'
)
);
}

/**
* Метод вывода настроек
*/
public function settings_tab() {
woocommerce_admin_fields( $this->get_settings_fields() );
}

/**
* Метод вывода настроек
*/
public function update_settings() {
woocommerce_update_options( $this->get_settings_fields() );
}
}
116 changes: 116 additions & 0 deletions lang/turboshop_orders.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: TurboShop Orders\n"
"POT-Creation-Date: 2022-05-01 20:15+0300\n"
"PO-Revision-Date: 2022-05-01 20:11+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
"X-Generator: Poedit 3.0.1\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-Flags-xgettext: --add-comments=translators:\n"
"X-Poedit-WPHeader: turboshop-orders.php\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
"_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPathExcluded-0: *.min.js\n"

#: classes/plugin.php:74 classes/plugin.php:125
msgid "Требуется авторизация и правильный токен магазина Яндекс.Турбо"
msgstr ""

#: classes/plugin.php:84 classes/plugin.php:135
msgid "Не переданы данные заказа Яндекс.Турбо"
msgstr ""

#: classes/plugin.php:97
msgid "Создание заказа Яндекс.Турбо"
msgstr ""

#: classes/plugin.php:148
msgid "Обновление заказа Яндекс.Турбо"
msgstr ""

#: classes/plugin.php:182
msgid "Нет заказа для обновления"
msgstr ""

#: classes/plugin.php:183
msgid "Нет JSON данных для обновления"
msgstr ""

#: classes/plugin.php:191
msgid "Статус"
msgstr ""

#: classes/plugin.php:202
msgid "Доставка Яндекс.Турбо"
msgstr ""

#: classes/plugin.php:213
msgid "Доставка"
msgstr ""

#: classes/plugin.php:219
msgid "Оплата"
msgstr ""

#: classes/plugin.php:305
msgid "Не передан ID заказа Яндекс.Турбо"
msgstr ""

#: classes/settings.php:35
msgid "Яндекс.Турбо"
msgstr ""

#: classes/settings.php:46
msgid "Подключение Турбо‑страниц для интернет-магазинов"
msgstr ""

#: classes/settings.php:48
msgid ""
"Эта настройка позволяет регистрировать заказы, сделанные в Яндекс.Турбо, в "
"базе WooCommerce."
msgstr ""

#: classes/settings.php:49
msgid ""
"Для работы необходимо получить токен в разделе \"Турбо‑страниц для интернет-"
"магазинов / Настройки / Настройка API\" Яндекс.Вебмастер."
msgstr ""

#: classes/settings.php:53
msgid "Токен"
msgstr ""

#: classes/settings.php:55
msgid "Введите значение полученного токена"
msgstr ""

#. Plugin Name of the plugin/theme
msgid "TurboShop Orders"
msgstr ""

#. Plugin URI of the plugin/theme
msgid "https://github.com/ivannikitin-com/turboshop-orders"
msgstr ""

#. Description of the plugin/theme
msgid ""
"Плагин для регистрации в WooCommerce заказов, сделанных в магазине Яндекс."
"Турбо"
msgstr ""

#. Author of the plugin/theme
msgid "Иван Никитин"
msgstr ""

#. Author URI of the plugin/theme
msgid "https://ivannikitin.com/"
msgstr ""
2 changes: 1 addition & 1 deletion turboshop-orders.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* @wordpress-plugin
* Plugin Name: TurboShop Orders
* Plugin URI: https://github.com/ivannikitin-com/turboshop-orders
* Description: Плагин для Woocommerce, который сохраняет ClientID Google Analytics, Яндекс.Метрика и других счетчиков в полях заказа и в формах ContactForm 7.
* Description: Плагин для регистрации в WooCommerce заказов, сделанных в магазине Яндекс.Турбо
* Version: 0.1
* Requires at least: 5.9
* Requires PHP: 7.4
Expand Down

0 comments on commit 18f5d22

Please sign in to comment.