=== НаКогда (NaKogda) — онлайн-запись и чат ===
Tags: booking, appointments, live chat, scheduling
Requires at least: 6.3
Tested up to: 7.1
Requires PHP: 8.2
Stable tag: 1.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Подключите онлайн-запись и чат НаКогда: блок редактора, короткий код и плавающий чат. Для работы нужен аккаунт сервиса.

== Description ==

Плагин подключает существующую онлайн-запись и чат [НаКогда](https://nakogda.ru/) к сайту WordPress. Настройте организацию в кабинете сервиса, скопируйте штатный код или ссылку записи и импортируйте её в «Настройки → НаКогда». Проверьте распознанные UID и сведения о внешнем сервисе, затем сохраните настройки для подключения организации.

Добавьте блок «Запись НаКогда» или короткий код `[nakogda_booking]` на нужную страницу. Для отдельного виджета используйте настройку блока или `[nakogda_booking widget="UID_ВИДЖЕТА"]`. Плавающий чат включается отдельно и работает без виджета записи.

* Один сайт — одна подключённая организация; на странице можно разместить несколько виджетов записи.
* Скрипт записи загружается только при выводе записи; скрипт чата — при включённом чате.
* В редакторе показывается локальная карточка без загрузки внешнего сервиса.
* Плагин использует штатные блоки, Settings API и библиотеки WordPress.
* Импортированный код или ссылка не выполняются и не сохраняются; запросы по ссылке не отправляются. Поддерживаются только штатные адреса НаКогда.

Плагин бесплатный и распространяется по GPL. Для работы нужен аккаунт НаКогда. Условия использования облачного сервиса определяются действующими [тарифами](https://nakogda.ru/#pricing). Стоимость подписки не входит в плагин; данные, функции сервиса и ограничения тарифа обслуживаются НаКогда.

== Внешние сервисы ==

Плагин подключается к [НаКогда](https://nakogda.ru/), внешнему сервису онлайн-записи и чата. Сервис предоставляет свободное время, принимает записи и хранит переписку.

Чтобы подключить сервис, администратор сайта сохраняет UID организации. Описание обмена данными видно на странице настроек до сохранения. При первой установке одной активации плагина для подключения недостаточно. Импорт ссылки или кода только заполняет форму в WordPress.

* На публичных страницах с блоком или коротким кодом записи браузер посетителя загружает `https://time.nakogda.ru/widget/v1/widget.js`. Виджет использует публичный UID организации и, если он задан, UID виджета, чтобы получить форму записи и свободное время в НаКогда.
* Если администратор отдельно включает плавающий чат, браузер посетителя загружает `https://time.nakogda.ru/chat/v1/chat.js` на публичных страницах. Чат по публичному UID подключается к обращениям нужной организации и получает новые сообщения в реальном времени.
* При этих запросах НаКогда получает IP-адрес посетителя и данные браузера. Виджеты могут передавать адрес страницы и источник перехода, чтобы связать обращение с сайтом и организацией. Запись и чат используют общую клиентскую сессию, её технические идентификаторы обрабатывают компоненты сервиса.
* При записи виджет передаёт НаКогда выбранную услугу, время, сведения о клиенте и заполненные поля формы. В чате НаКогда получает сообщения, контактные данные и вложения, которые отправляет посетитель.

Настройки подключения в WordPress содержат публичный UID организации, необязательный UID виджета и отдельный переключатель чата. Индивидуальный выбор виджета и CSS блока хранятся в содержимом страницы. Плагин не хранит пароли НаКогда, закрытые ключи, клиентские сессии, записи, переписку или копию клиентской базы. У плагина нет собственной телеметрии установки, рекламных пикселей и скрытых реферальных параметров. Настройте информацию о внешнем сервисе и необходимые для своего сайта согласия с учётом сценария использования. Специальной интеграции с менеджерами согласий в этой версии нет.

* Сервис и регистрация: https://cabinet.nakogda.ru/
* [Условия использования](https://nakogda.ru/offer/)
* [Политика обработки данных](https://nakogda.ru/privacy/)
* Поддержка: support@nakogda.ru

Подпись платформы формирует сам сервис в соответствии с тарифом. Плагин не добавляет публичных рекламных ссылок и не изменяет правила отображения подписи.

== Исходный код ==

ZIP плагина содержит редактируемые исходники. Код блока редактора находится в `blocks/booking/index.js`, его иконка — в `blocks/booking/logo.svg`, стили редактора — в `blocks/booking/editor.css`. Скрипт оформления виджета на публичной странице — `blocks/booking/styles.js`. Исходники PHP находятся в `nakogda.php`, `uninstall.php` и каталоге `includes/`.

WordPress использует эти файлы PHP и JavaScript напрямую. Для запуска и изменения плагина сборка и минификация не нужны.

== Installation ==

1. Загрузите ZIP через «Плагины → Добавить плагин → Загрузить плагин» и активируйте его.
2. Откройте «Настройки → НаКогда» и перейдите в кабинет сервиса по ссылке.
3. Зарегистрируйтесь или войдите, настройте услуги, сотрудников, ресурсы и расписание.
4. Откройте раздел [«Виджет»](https://cabinet.nakogda.ru/widget/) и скопируйте код из блока «Поставьте контейнер в нужное место». В WordPress вставьте его в поле «Код из кабинета, ссылка записи или персональный адрес чата» и нажмите «Распознать код или ссылку». Вместо кода можно вставить ссылку записи по правилам ниже, код подключения чата или его персональный адрес.
5. Проверьте распознанные UID. Импорт только заполняет форму: не сохраняет настройки и не подключает сервис; чат в форме после импорта выключен. При необходимости UID можно указать вручную.
6. Уберите ранее установленный вручную код этих виджетов. Прочитайте пояснение об обмене данными и связанные условия и политику, при необходимости включите чат, затем сохраните настройки. Именно сохранение корректного UID организации подключает сервис.
7. Добавьте блок «Запись НаКогда» на страницу или вставьте `[nakogda_booking]`. Опубликуйте страницу и проверьте её как посетитель.

Для изменения настроек нужно право `manage_options`. В Multisite активируйте и настраивайте плагин отдельно для каждого сайта; сетевая активация не поддерживается.

== Frequently Asked Questions ==

= Можно ли пользоваться без аккаунта НаКогда? =

Для работы записи и чата нужен аккаунт и организация в НаКогда. Плагин только подключает существующий сервис к сайту.

= Как выбрать другой виджет записи? =

Укажите его публичный UID в настройке блока или в параметре `widget` короткого кода. Приоритет: настройка экземпляра, затем общий UID виджета, затем основной виджет организации, выбранный сервисом. Виджет должен принадлежать подключённой организации. Плагин проверяет формат, но не принадлежность или доступность тарифа.

= Можно ли подключить чат без записи? =

Да. Укажите UID организации, включите плавающий чат и сохраните настройки. Добавлять блок или короткий код записи для этого не нужно. Чтобы отключить только чат, снимите его отдельный флажок и сохраните настройки.

= Какие варианты кода или ссылки можно импортировать? =

Контейнер записи отдельно или со штатным загрузчиком, обычный код чата, персональный адрес `https://time.nakogda.ru/chat/v1/UID_ОРГАНИЗАЦИИ.js` отдельно или внутри тега script.

Также можно вставить одну ссылку записи: `https://time.nakogda.ru/UID_ОРГАНИЗАЦИИ` или `https://time.nakogda.ru/UID_ОРГАНИЗАЦИИ?widget=UID_ВИДЖЕТА`. Замените обозначения фактическими публичными UID из кабинета. Допускается один завершающий слэш перед необязательными параметрами. UID организации берётся из пути; необязательный параметр `widget` задаёт UID виджета. Без него поле виджета после импорта пустое и используется основной виджет организации. Определять UID по именованному адресу организации плагин не умеет.

UID содержит от 1 до 64 латинских букв ASCII, цифр, дефисов или подчёркиваний. У ссылки записи допустимы только HTTPS и точный хост `time.nakogda.ru`: без порта, данных входа, фрагмента, кодирования, дополнительных сегментов пути и других параметров. Параметр `widget` разрешён только один раз. Ссылка записи принимается только отдельным текстом, а не как адрес скрипта или вместе с HTML. Конфликтующие UID, произвольный HTML, inline-JavaScript, обработчики событий, другие домены и локальные адреса отклоняются. Импорт не запрашивает ссылку, не выполняет и не сохраняет исходный текст. Проверка формата не подтверждает существование организации, виджета или доступность тарифа.

= Почему запись не появилась? =

Проверьте, сохранён ли UID организации, есть ли на странице блок или короткий код, допускают ли запись настройки организации и действующий тариф в НаКогда. Успешный импорт не сохраняет настройки и не подтверждает существование организации. Проверьте, не блокирует ли загрузчики политика сайта или другая установленная программа. После изменения настроек очистите кэш штатными средствами используемого кэширующего плагина.

= Как оформить сам виджет через CSS? =

В WordPress 7.0 и новее откройте у блока раздел «Оформление виджета» и поле «CSS виджета». Оно доступно для изменения пользователям с правом `edit_css`. Можно указать свойства вроде `color: red;` или правила с селекторами: `.nakogda-widget-style .nkw-submit { border-radius: 4px; }`. Они применяются к настоящей форме этого блока; карточка редактора и соседние виджеты сохраняют своё оформление. Для проверки откройте предпросмотр страницы. Прежние значения `style.css` сохраняются.

Рядом находится [справка с селекторами и примерами](https://cabinet.nakogda.ru/docs/widget/#widget-style-categories). Локальный стилизатор подключается только при наличии CSS. В старых версиях WordPress подключение записи работает; используйте оформление в кабинете НаКогда и метод CSS-правил на сайте из документации. Индивидуальный выбор виджета и его CSS хранятся в содержимом страницы.

= Что происходит без JavaScript или при недоступности сервиса? =

При отключённом JavaScript выводится ссылка на публичную страницу организации. Она также зависит от доступности НаКогда. Остальная страница WordPress продолжает работать независимо от виджетов.

= Можно ли подключить несколько организаций? =

В этой версии к одному сайту подключается одна организация. Отдельные блоки могут выбирать разные виджеты этой организации. При смене организации прежний общий UID виджета автоматически не переносится; проверьте также UID в отдельных блоках и коротких кодах.

= Что удаляется при отключении или удалении? =

Чтобы остановить запись и чат, очистите UID организации и сохраните настройки либо деактивируйте плагин. Только чат можно отключить его отдельным флажком с последующим сохранением. Деактивация сохраняет настройки; повторная активация возобновляет сохранённое подключение. Штатное удаление через страницу плагинов очищает только собственные настройки плагина в WordPress, в том числе на сайтах Multisite. Организация, записи, переписка, аккаунт и подписка в НаКогда сохраняются. Управляйте подпиской и её отменой отдельно в сервисе.

= Как обновить плагин? =

Сделайте резервную копию сайта и значений подключения. Загрузите новый официальный ZIP через установщик WordPress и подтвердите замену установленной версии. После публикации плагина в каталоге можно использовать штатные обновления WordPress. Очистите связанный кэш, проверьте публичную страницу записи и чат. Версия 1.0.0 — первый выпуск.

= Что делать при ошибке сохранения? =

Проверьте UID и настройку чата, обновите страницу при ошибке прав или проверки запроса. Ошибочное сохранение не заменяет прежнюю конфигурацию. Формат UID сам по себе не подтверждает существование организации, принадлежность виджета и доступность тарифа.

== Screenshots ==

1. Настройки подключения: UID организации и виджета, сведения об обмене данными и отдельное включение чата.
2. Два блока «Запись НаКогда» в редакторе WordPress; выбор виджета, CSS-оформление и ссылка на справку в боковой панели.
3. Онлайн-запись и плавающий чат на демонстрационной странице WordPress.

== Changelog ==

= 1.0.0 =

* Первый выпуск: безопасный импорт кода и ссылки записи, общие настройки одной организации, динамический блок записи, короткий код и независимый плавающий чат.

== Upgrade Notice ==

= 1.0.0 =

Первый выпуск. Перед подключением удалите ранее установленный вручную код этих виджетов.
