JetAppointments Booking - Плагин WordPress
Этот плагин для WordPress позволяет пользователям создавать настраиваемые формы бронирования для записей на приемы, что упрощает процесс управления расписанием для бизнеса. С помощью плагина JetAppointments Booking компании могут легко интегрировать удобную систему бронирования на свой веб-сайт WordPress, оптимизируя процесс записи на приемы.

Особенности плагина
Этот плагин предлагает ряд функций, которые улучшают опыт бронирования как для бизнеса, так и для клиентов. Он позволяет компаниям настроить различные услуги и исполнителей, а также их доступность, обеспечивая точное и эффективное расписание. Клиенты могут легко выбрать желаемую услугу и исполнителя, выбрать удобное время и предоставить необходимые данные для бронирования.
Интуитивный интерфейс этого плагина облегчает управление записями и настройку форм бронирования в соответствии с конкретными потребностями бизнеса. С возможностью добавления нескольких полей в форму бронирования, таких как имя, электронная почта, номер телефона и дополнительная информация, компании могут собирать все необходимые данные от клиентов в одной форме. Это помогает обеспечить гладкое и персонализированное клиентское впечатление.
Кроме того, этот плагин предлагает гибкие варианты планирования, позволяя компаниям устанавливать определенные временные интервалы для записи. Независимо от того, предпочитают ли компании часовое, дневное или недельное планирование, этот плагин может адаптироваться к их предпочтениям. Он также позволяет управлять доступностью бронирования, устанавливая регулярные рабочие часы и блокируя определенные даты или временные интервалы.
Плагин JetAppointments Booking также включает функции для автоматической отправки напоминаний о записи и уведомлений. Он может отправлять автоматические электронные напоминания клиентам перед их запланированными приемами, что минимизирует риск неявки и обеспечивает должное информирование клиентов о предстоящих приемах. Компании также могут настраивать и персонализировать эти уведомления, чтобы они соответствовали образу их бренда.
Более того, этот плагин легко интегрируется с популярными платежными шлюзами, что позволяет компаниям принимать платежи в момент бронирования. Предлагая безопасный и удобный вариант онлайн-оплаты, компании могут оптимизировать процесс оплаты и обеспечить беззаботный опыт бронирования для клиентов.
В целом, этот плагин WordPress является мощным инструментом для компаний, стремящихся эффективно управлять процессом бронирования приемов. Благодаря настраиваемым формам бронирования, гибким вариантам планирования и автоматическим уведомлениям, компании могут повысить удовлетворенность клиентов, оптимизировать операции и увеличить общую эффективность. Понятный интерфейс этого плагина делает его доступным для компаний любого размера, помогая им эффективно управлять бронированиями и предоставлять безупречный опыт своим клиентам.
Спецификации:
| Дата выхода: | 11-10-2020 | |
| Дата обновления: | 20-05-2026 | |
| Тип расширения: | Платный | |
| Лицензия: | GPL | |
| Тематика: | Календари и события | |
| Совместимость: | W5.x W6.x | |
| Включает в себя: | Плагин | |
| Языковые пакеты: |
|
|
| Разработчик: | Crocoblock | |
| Рейтинг: | ||
Скачивание по подписке!
Вам необходимо авторизоваться на сайте и приобрести клубную подписку!
Поделись с друзьями!
Руководство по настройке JetAppointments Booking для записи на услуги в WordPress
JetAppointments Booking используют тогда, когда на сайте WordPress нужно не просто показать форму заявки, а собрать управляемую систему записи: услуга, специалист или ресурс, календарь, свободные слоты, данные клиента, подтверждение, оплата и дальнейшая работа администратора с заявкой. В этом руководстве разберём практический путь от подготовки структуры услуг до проверки тестовой записи, диагностики типичных ошибок и выбора похожих решений.
Материал не заменяет официальную документацию Crocoblock, но помогает связать отдельные инструкции в один рабочий сценарий. У JetAppointment много настроек: типы расписаний, провайдеры, ёмкость слота, формы JetFormBuilder, WooCommerce, статусы, Google Calendar, Zoom, подтверждения по ссылке и права доступа. Если включать всё подряд, легко получить календарь, который выглядит готовым, но не создаёт корректные записи или показывает пользователю неправильное время.
В тексте ниже я буду называть продукт JetAppointment, когда речь идёт об официальном названии в документации Crocoblock, и JetAppointments Booking, когда ориентируюсь на название карточки материала. Смысл один: это WordPress-плагин Crocoblock для почасовой записи на услуги, тесно связанный с JetEngine и формами.
Какую задачу закрывает плагин и где он особенно полезен
Главная задача JetAppointments Booking - построить запись на услуги, где время выбирается не вручную администратором после заявки, а прямо в публичной части сайта. Посетитель выбирает услугу, при необходимости провайдера, дату и слот. После отправки данные попадают в таблицу записей, а сайт может дополнительно отправить письмо, создать событие, передать клиента в оплату или синхронизировать слот с внешним календарём.
Плагин сильнее всего раскрывается на сайтах, где есть понятная связь между услугой и исполнителем. Это салон, кабинет врача, студия, консультации, обучение, ремонтная служба, тренировки, почасовая аренда помещения или другой сценарий, где слот нельзя свободно продать бесконечному числу посетителей. В документации Crocoblock такая структура строится через типы записей: например, отдельный тип "Services" для услуг и отдельный тип "Team" для провайдеров.
Важное отличие от простой формы обратной связи состоит в том, что JetAppointment хранит не только сообщение клиента. Он хранит конкретную запись с датой, временем, статусом, пользователем, услугой, провайдером и дополнительными полями. Поэтому администратор может смотреть список, фильтровать заявки, переключаться в календарь или временную шкалу, редактировать запись, отменять её и видеть, на каком этапе находится бронирование.
Практический смысл настройки - не "добавить календарь", а заранее определить, какие данные управляют доступностью. Если выбранный провайдер имеет индивидуальный график, он должен влиять на слоты. Если у услуги есть перерыв после выполнения, он должен закрывать соседнее время. Если посетитель может записать сразу несколько людей на один мастер-класс, нужна ёмкость слота. Если оплата обязательна, надо связать запись с WooCommerce и продумать, что делать со статусом при незавершённом заказе.
JetAppointments Booking будет удобен, когда сайт уже строится на экосистеме Crocoblock: JetEngine отвечает за структуры данных, JetFormBuilder собирает форму, Elementor, Gutenberg или Bricks выводят блоки на странице, а JetAppointment управляет логикой времени. Если проект не использует Crocoblock вообще, плагин всё равно можно рассматривать, но подготовка будет требовать больше внимания к зависимостям.
Кому подойдёт JetAppointments Booking и когда лучше выбрать другое решение
Плагин подходит владельцу сайта, который хочет управлять записью внутри WordPress и готов один раз внимательно настроить структуру. Особенно полезен он агентствам и разработчикам, потому что позволяет собрать разные модели: одна услуга без провайдера, услуга с несколькими специалистами, индивидуальные расписания, повторяющиеся записи, оплата после выбора слота, подтверждение по ссылке и синхронизация с календарём.
Для небольшого бизнеса JetAppointments Booking хорош тогда, когда владелец уже понимает свои правила работы. Например, консультация длится 45 минут, между консультациями нужен буфер, по средам специалист не принимает, праздничные дни закрыты, а новые записи нельзя делать за 15 минут до начала. Эти правила можно разложить по настройкам, и посетитель будет видеть только доступные варианты.
Плагин может не подойти, если нужен максимально простой сервис "вставил календарь и сразу получил запись" без подготовки типов записей, полей и форм. Он также может быть избыточен для сайта, где запись всегда подтверждается вручную и время не критично. В таком случае обычная форма с выбором предпочтительной даты иногда проще и надёжнее.
Отдельный случай - отели, посуточная аренда и длительные бронирования. Для них у Crocoblock есть JetBooking, а не JetAppointment. JetAppointment ориентирован на почасовые услуги, слоты, провайдеров и расписание в течение дня. Если пользователь выбирает дату заезда, дату выезда, сезонные тарифы и наличие объекта на несколько суток, лучше не натягивать почасовую модель на неподходящий сценарий.
Ещё один ограничитель - команда без человека, который отвечает за структуру WordPress. JetAppointment требует аккуратности: не удалять служебные поля формы, правильно сопоставить поля в действии Insert appointment, не ломать вспомогательный товар WooCommerce, следить за часовыми поясами. Если в проекте нет такого ответственного, более автономный SaaS-сервис записи может оказаться спокойнее, хотя он и выведет часть данных за пределы сайта.
Что проверить перед установкой и первым запуском
Перед установкой стоит проверить не только сам ZIP-архив плагина, но и окружение. Официальная страница Crocoblock указывает технические требования для продуктов Crocoblock: современная версия PHP, MySQL, достаточный лимит памяти WordPress и SSL-сертификат. В статье не нужно фиксировать конкретные версии, потому что они могут меняться, но смысл проверки остаётся: сайт должен быть достаточно свежим, защищённым и не упираться в память при работе с конструкторами и формами.
Зависимости и редактор страниц
JetAppointment требует JetEngine. В документации также показаны сценарии с JetFormBuilder, а официальная страница продукта указывает работу с Elementor, Gutenberg и Bricks. Поэтому перед запуском проверьте, какой редактор используется на сайте и где будет размещена форма: на обычной странице, на шаблоне одиночной услуги или на странице провайдера.
Если вы планируете создавать форму через JetFormBuilder, установите и активируйте его заранее. Если форма будет выводиться в шаблоне Elementor или Gutenberg, подготовьте страницу или шаблон, где можно безопасно проверить результат. Для платной записи дополнительно нужен WooCommerce. Для онлайн-встреч - аккаунты и интеграции Zoom или Google Calendar, но их лучше подключать после того, как базовая запись уже работает.
Структура данных до мастера установки
Самая частая ошибка на старте - запускать мастер без понятной структуры услуг. В официальном wizard-сценарии Crocoblock сначала создаётся тип записей для услуг, а при необходимости отдельный тип записей для провайдеров. Это важно: мастер JetAppointment спрашивает, с какими типами записей он будет работать. Если позже вы поменяете структуру, настройки можно исправить, но проще не переделывать основу после создания форм.
Минимальная подготовка выглядит так:
- Создайте тип записей для услуг, если услуги ещё не представлены в WordPress как отдельные записи.
- Добавьте несколько тестовых услуг с понятными названиями, чтобы видеть их в выпадающих списках.
- Если запись идёт к конкретным специалистам, создайте отдельный тип записей для провайдеров.
- Подумайте, какие данные клиента надо хранить: имя, email, телефон, комментарий, количество мест, выбранный формат консультации.
- Решите, будет ли запись бесплатной, с оплатой через WooCommerce или с ручным подтверждением.
Мини-проверка перед мастером: если вы не можете одной фразой объяснить, что является услугой, кто является провайдером и где пользователь увидит форму, установку лучше отложить на 10 минут и сначала нарисовать простую схему.
Установка и мастер: как не сломать основу записи
После активации плагина в админ-панели WordPress появляется раздел Appointments. В документации Crocoblock для первого запуска используется кнопка Go to setup, которая открывает мастер. Его задача - связать подготовленные типы записей, создать таблицу для записей, задать рабочие часы и создать базовые формы, если вы оставляете соответствующие переключатели включёнными.
Шаг 1. Связь услуги и провайдера
На первом шаге мастер просит выбрать тип записей для услуг. Если у бизнеса есть специалисты, комнаты, мастера или другие исполнители, включается добавление провайдеров и выбирается второй тип записей. В документации Crocoblock отмечено, что у провайдера может быть собственная цена с более высоким приоритетом, чем цена услуги. Это полезно для салона или консультаций, где один специалист работает дороже другого.
Не стоит называть тип записей слишком общо, если проект будет развиваться. "Services" и "Team" понятны, но для русскоязычной админки можно выбрать более ясные названия. Главное, чтобы они оставались логически стабильными: услуга отвечает на вопрос "что бронируем", провайдер - "кто или какой ресурс выполняет".
Шаг 2. Таблица записей и дополнительные поля
JetAppointment хранит записи в отдельной таблице. Мастер создаёт обязательные столбцы, но позволяет добавить дополнительные. Если в форме нужно сохранять телефон, комментарий, тип клиента или количество мест, добавляйте такие столбцы на этом этапе или позже через вкладку Tools. При этом нельзя удалять обязательные поля формы, которые связаны с базовой логикой записи.
Хорошая практика - добавить только те колонки, которые реально нужны для управления заявкой. Не превращайте таблицу записей в полноценную CRM. Для длинной анкеты лучше отправить часть данных в письмо или отдельную сущность, а в записи оставить то, что нужно администратору при планировании времени.
Шаг 3. Рабочие часы, буферы и дни без записи
На этапе расписания выбирается формат времени, тип расписания, длительность услуги, буфер до и после, закрытое время перед стартом записи и рабочие часы по дням. Если у бизнеса есть обеденный перерыв, официальная инструкция показывает простой подход: добавить несколько рабочих интервалов в один день, а середину не включать. Для праздничных дней и исключений есть блок Days Off и рабочие дни с отдельными датами.
Буфер - это не декоративная настройка. Он защищает расписание от накладок: мастер не должен принимать нового клиента сразу после процедуры, врач может оставить время на карточку пациента, консультант - на заметки. Если буфер забыть, календарь будет выглядеть красиво, но реальная работа быстро станет напряжённой.
Шаг 4. Базовые формы
В мастере можно оставить включённым создание форм. Документация показывает два варианта: форму для статичной страницы и форму для одиночной страницы услуги. Разница в том, что на одиночной странице услуга уже известна, поэтому поле выбора услуги не нужно. Для старта полезно создать обе формы, но затем обязательно открыть их и проверить поля, сопоставления и действие после отправки.
Расписание, провайдеры и ёмкость слота: главная логика JetAppointment
После установки основная работа переносится в Crocoblock - JetPlugins Settings - JetAppointments. Вкладка General Settings управляет типами записей, WooCommerce и ёмкостью. Working Hours отвечает за тип расписания, длительность, буферы, multi booking и дни. Advanced управляет доступностью, on-hold слотами, автоматической сменой статусов и подтверждениями.
Иерархия рабочих часов
У JetAppointment есть важная иерархия: график провайдера имеет приоритет над графиком услуги, а график услуги - над общими рабочими часами. Это значит, что общий график задаёт базовую сетку, но индивидуальная настройка специалиста может её перекрыть. Если один врач принимает только по понедельникам, а другой работает каждый день, задавать всё на уровне общего расписания неудобно - лучше использовать индивидуальные графики провайдеров.
В документации отмечено, что если хотя бы один провайдер использует custom schedule, дублирование слотов между провайдерами включается независимо от выбранной настройки. Практический вывод простой: если вы видите неожиданное поведение свободных слотов у нескольких специалистов, сначала проверьте, не включён ли индивидуальный график у одного из них.
Slot, Time Picker и Recurring
В Working Hours выбирается тип расписания. Slot подходит для фиксированной длительности: консультация 30 минут, массаж 60 минут, урок 45 минут. Time Picker нужен, когда посетитель выбирает диапазон времени. Recurring позволяет пользователю записаться повторно: каждый день, неделю, месяц или другой доступный период, если такой период включён в настройках.
Для большинства сайтов лучше начинать со Slot. Он проще проверяется: вы знаете длительность, видите конкретные интервалы и быстрее находите конфликт. Recurring стоит включать только тогда, когда бизнес действительно продаёт повторяющиеся визиты: курс процедур, занятия с преподавателем, регулярные тренировки. Если включить повторяемость без бизнес-процесса, администратор получит сложные группы записей, которые трудно отменять и объяснять клиенту.
Ёмкость слота и групповые услуги
Manage Capacity нужен, когда один слот может принять несколько клиентов. Официальный пример Crocoblock описывает медицинскую услугу, где несколько врачей могут обслужить пациентов одновременно. В интерфейсе услуги задаётся значение Capacity, а в публичной форме может показываться счётчик доступных мест и кнопки увеличения или уменьшения бронируемого количества.
Эта функция особенно полезна для групповых занятий, мастер-классов, семинаров, небольших классов и услуг, где пользователь может забронировать несколько мест. Но для индивидуальной консультации ёмкость лучше не включать. Если один клиент случайно сможет занять все места или выбрать количество без понятной причины, форма станет менее очевидной.
Проверка результата: после изменения расписания откройте публичную форму в режиме обычного посетителя, выберите услугу и провайдера, затем сравните доступные слоты с графиком в админке. Не ограничивайтесь тем, что переключатель включился.
Формы бронирования: статичная страница, страница услуги и страница провайдера
JetAppointments Booking не работает как изолированный календарь. Пользовательский путь строится через форму. В документации Crocoblock описаны три типа форм: Static Page Booking Form, Single Service Booking Form и Single Provider Booking Form. Они похожи внешне, но различаются источником данных для услуги и провайдера.
Insert appointment услугу, провайдера, дату, email и другие нужные поля.Статичная форма
Статичная форма размещается на любой странице. В ней посетитель вручную выбирает услугу, затем провайдера и дату. Для поля услуги можно использовать Radio Field или Select Field, заполняя варианты из записей нужного типа. Для выбора провайдера документация отдельно предупреждает использовать именно Appointment Provider field: это поле получает провайдеров на основе выбранной услуги и корректно передаёт их календарю.
После выбора услуги и провайдера добавляется Appointment Date field. У него нужно указать, откуда брать Service ID и Provider ID. Если эти связи заданы неверно, календарь может не показать слоты или показать не те данные. Затем добавляются email, телефон, имя и кнопка отправки. Email в документации отмечен как обязательный для успешной отправки формы.
Форма на странице услуги
На одиночной странице услуги сама услуга уже известна, поэтому удобнее добавить Hidden Field со значением Current Post ID. Это скрытое поле хранит ID текущей услуги и используется в Appointment Provider и Appointment Date. Такой подход полезен ещё и потому, что тот же ID можно использовать в письмах или других действиях формы.
Если вы забыли скрытое поле и пытаетесь получить услугу из обычного поля выбора, которого на странице нет, форма будет выглядеть неполной. Пользователь увидит календарь, но логика может не понять, для какой услуги искать слоты. Поэтому после публикации одиночного шаблона всегда проверяйте исходный путь: открыта страница конкретной услуги, скрытое поле получает текущий ID, провайдеры фильтруются по этой услуге, дата показывает реальные слоты.
Форма на странице провайдера
На странице провайдера обратная логика: провайдер уже известен, а услугу пользователь выбирает. В этом случае Hidden Field получает ID текущего провайдера, поле услуги заполняется из типа записей услуг, а Appointment Date использует выбранную услугу и скрытый ID провайдера. Такой вариант удобен для сайтов, где посетитель сначала выбирает специалиста, например тренера или врача, а потом выбирает доступную услугу.
Действие Insert appointment
Главное действие формы - Insert appointment. В нём надо сопоставить поля формы с полями записи: Service ID, Provider ID, Appointment Date, User Email, User Name и дополнительные колонки. Это место нельзя настраивать на глаз. Если поле даты называется appointment_date, а в действии выбрано другое поле, заявка не сохранится так, как вы ожидаете.
Лучший способ проверки - создать тестовую заявку с уникальным именем и email, затем открыть Appointments в админке и посмотреть, появились ли услуга, провайдер, дата, время и дополнительные поля. Если запись есть, но часть данных пустая, проблема почти всегда в сопоставлении полей или в том, что дополнительная колонка создана в таблице, но не связана с полем формы.
Оплата, WooCommerce, статусы и цена за время
JetAppointments Booking можно использовать без оплаты, с ручным подтверждением или с оплатой через WooCommerce. Официальная инструкция по WooCommerce подчёркивает: после включения интеграции в товарах WooCommerce появляется вспомогательный продукт Appointment. Его не нужно удалять, потому что он используется для активации checkout-потока. Если товар не нужен в каталоге, его лучше скрыть в публичной части, но оставить в системе.
Как работает платный сценарий
При платной записи посетитель выбирает слот в форме, форма создаёт запись и передаёт пользователя в WooCommerce checkout. В действии Insert appointment появляется настройка WooCommerce price field, а также блоки для деталей заказа и автозаполнения checkout-полей. Если пользователь уже ввёл имя и email в форме, эти данные можно передать дальше, чтобы не заставлять его повторять ввод.
После оформления заказа запись появляется в Appointments, а заказ - в WooCommerce Orders. Для администратора это два связанных слоя: запись отвечает за время, услугу и провайдера, заказ - за платёжный статус и платёжную историю. В настройках JetAppointment есть two-way WC orders sync, который помогает связывать изменение статуса записи и заказа, но включать его стоит только после теста на копии или на безопасном тестовом сценарии.
Статусы записи
В документации по управлению записями перечислены статусы: Pending Payment, Processing, On Hold, Completed, Cancelled, Refunded и Failed. Их смысл зависит от оплаты и логики формы. Например, Pending Payment может появиться после создания записи, если оплата ещё не завершена. Completed может выставляться вручную или автоматически, если подтверждение прошло по ссылке.
Не стоит воспринимать статус как простой цвет в таблице. Это часть бизнес-логики. Если слот резервируется при Pending Payment и пользователь не завершил оплату, администратор должен понимать, когда такой слот освобождается. В Advanced есть настройка автоматического переключения статуса через интервал: она помогает переводить незавершённые записи в Failed или Cancelled, но её нужно тестировать, чтобы не отменять реальные заявки слишком рано.
Цена за слот, час или минуту
Для услуг можно задавать цену за весь слот, за час или за минуту. В документации Crocoblock есть важный нюанс: при цене за час значение округляется, если пользователь выбирает часы и минуты. Например, запись на час и часть часа может считаться как следующий полный час. Поэтому для сценариев, где точная поминутная тарификация критична, лучше использовать цену за минуту или заранее объяснить правила расчёта в интерфейсе.
Чтобы показать рассчитанную цену в форме, используется calculated field со значением поля Appointment Date. Это не декоративный элемент: без правильного расчёта пользователь может перейти к оплате, не понимая стоимость. После настройки обязательно проверьте несколько длительностей и сравните цену на странице услуги, в форме, в checkout и в записи.
Практический пример: запись на платную консультацию специалиста
Представим сайт консультационного центра. Нужно, чтобы посетитель выбрал услугу "Первичная консультация", специалиста, дату, свободное время, ввёл имя и email, затем при необходимости перешёл к оплате. После отправки администратор должен увидеть запись в Appointments, а специалист - получить понятное уведомление.
Цель
Получить страницу услуги, где пользователь не оставляет абстрактную заявку, а выбирает конкретное время консультации. Итоговая запись должна появиться в таблице Appointments с услугой, провайдером, датой, временем, именем и email.
Подготовка
Создайте тип записей для услуг и тип записей для специалистов. Добавьте услугу "Первичная консультация" и двух тестовых специалистов. Укажите для каждого специалиста понятный график. Если сайт принимает оплату, активируйте WooCommerce и сначала проведите тест в безопасном режиме, не смешивая реальные заказы с проверочными.
В настройках JetAppointment выберите service post type и provider post type. На Working Hours задайте длительность консультации, например один фиксированный слот, и добавьте буфер после консультации. Если консультации проходят онлайн, не включайте Zoom или Google Calendar сразу. Сначала добейтесь корректной записи без интеграций.
Шаги настройки
- Откройте форму, созданную мастером, или создайте новую форму в JetFormBuilder.
- Добавьте поле выбора услуги, если форма находится на общей странице записи.
- Добавьте Appointment Provider field и привяжите его к полю услуги.
- Добавьте Appointment Date field и укажите источники Service ID и Provider ID.
- Добавьте email и имя, причём email оставьте обязательным.
- Добавьте действие
Insert appointmentи сопоставьте все поля. - Опубликуйте форму на странице или в шаблоне одиночной услуги.
- Откройте страницу как посетитель и сделайте тестовую запись.
Проверка
После отправки откройте Appointments в админ-панели. Запись должна появиться в списке. Проверьте услугу, провайдера, дату, время, имя, email и статус. Затем переключитесь в Calendar или Timeline view, если вам важно увидеть запись в визуальном расписании. Если используется WooCommerce, проверьте также заказ в WooCommerce Orders.
Нюанс: если на форме нет доступных слотов, не спешите менять дизайн. Сначала проверьте график услуги, график провайдера, индивидуальные дни off, буфер, locked time before, выбранный тип расписания и кэш слотов в Tools. Если подключён Google Calendar, дополнительно сравните часовой пояс WordPress и календаря.
Проверка результата в админке, календаре и публичной части
Когда тестовая запись создана, важно проверить три уровня: публичную форму, таблицу Appointments и фактическую занятость слота. Пользовательский уровень показывает, что посетитель может пройти путь. Админский уровень показывает, что данные сохранились. Уровень занятости показывает, что тот же слот больше не предлагается там, где он должен быть закрыт.
Список записей
В Appointments list можно добавлять, редактировать и удалять записи, смотреть детали, менять количество результатов на странице и использовать фильтры по услуге, провайдеру, статусу или дате. Это основной рабочий экран администратора. Если заявок много, фильтры и вкладки All, Upcoming и Past помогают не искать клиента вручную.
Удаление записи необратимо, поэтому для спорных случаев лучше сначала менять статус на Cancelled или Failed, если такая логика подходит бизнесу. Так сохраняется история, и администратор понимает, что слот был занят, но потом отменён.
Calendar и Timeline view
Calendar view удобен для общего взгляда по дням. Timeline view полезнее, когда важно увидеть услуги и рабочие часы одного дня в виде сетки. Временная шкала помогает быстро понять, где образовалось окно, где слот конфликтует и какой интервал должен быть закрыт буфером.
После тестовой записи проверьте, что выбранный слот не доступен повторно, если модель услуги предполагает одного клиента. Если Manage Capacity включён, проверьте не полное исчезновение слота, а изменение счётчика доступных мест. Для нескольких провайдеров отдельно посмотрите, влияет ли запись к одному специалисту на другого, потому что это зависит от настройки Service Slot Duplicating Across Providers и индивидуальных графиков.
Письма и подтверждения
Если вы используете подтверждение по ссылке, включите Generate Confirmation URLs в Advanced и настройте workflow с письмом. Документация Crocoblock объясняет, что при включении этой функции для каждой записи создаётся токен, который можно использовать в ссылке подтверждения или отмены. После подтверждения статус может перейти в Completed, а отменённая запись не должна повторно подтверждаться по старой ссылке.
Проверяйте письма не только по факту отправки. Откройте письмо как получатель, перейдите по ссылке, вернитесь в Appointments и посмотрите, изменился ли статус. Затем попробуйте сценарий отмены. Если ссылки не работают, проверьте, включена ли генерация URL, правильно ли вставлены макросы и не блокирует ли сайт письма или переходы.
Интеграции Google Calendar, Zoom и рабочие процессы
Интеграции стоит подключать после того, как базовый путь "форма - запись - админка" работает без ошибок. Иначе трудно понять, где именно сбой: в форме, в расписании, в OAuth-доступе, в часовом поясе, в workflow или в статусе записи.
Google Calendar и двухсторонняя синхронизация
Официальная инструкция Crocoblock описывает двухстороннюю синхронизацию с Google Calendar: событие, созданное на сайте, появляется в календаре, а событие из календаря может закрывать слот на сайте. Для этого создаётся проект Google Cloud, включается Google Calendar API, настраиваются OAuth credentials и redirect URL из настроек JetAppointment.
Самый важный практический шаг - совпадение часовых поясов. Документация прямо предлагает проверить часовой пояс WordPress в Settings - General и часовой пояс Google Calendar. Если они не совпадают, пользователь может видеть один слот, администратор - другой, а внешний календарь - третий. Такая ошибка выглядит как "плагин перепутал время", хотя причина часто в настройках окружения.
Также учитывайте локальные подключения. Для услуги или провайдера можно использовать отдельный календарь. Документация предупреждает, что один календарь нельзя назначить одновременно в разных местах: он используется либо глобально, либо в конкретном посте. Если слот не закрывается, проверьте, куда именно назначен календарь и есть ли событие в правильном календаре.
Zoom и Google Meet
На официальной странице продукта Crocoblock указывает Zoom и Google Meet как поддерживаемые сценарии для виртуальных сессий. В настройках JetAppointment вкладка Integrations содержит Zoom-поля: Account ID, Client ID, Client Secret и кнопку Authenticate. Для Google Calendar можно включить Create Meets, чтобы события создавались с ссылкой Google Meet.
Не передавайте секреты от Zoom или Google в тексты задач, письма подрядчикам или генератор статей. Настраивайте интеграцию в админке сайта и храните credentials в безопасном месте. В руководстве достаточно понимать, что онлайн-встреча создаётся после корректной базовой записи и правильно настроенного workflow.
Workflows
Workflows позволяют включать действия по жизненному циклу записи: письмо, подтверждение, отмена, вебхуки и другие реакции. На практике лучше создать один простой workflow, проверить его на тестовой записи, а затем добавлять дополнительные действия. Если сразу включить письмо клиенту, письмо провайдеру, Zoom, webhook и смену статуса, диагностика станет сложной.
Надёжная последовательность такая: сначала запись без workflow, потом письмо администратору, потом подтверждение по ссылке, потом интеграция календаря, потом онлайн-встреча. Каждый шаг должен давать проверяемый результат.
Безопасные улучшения и настройки для реального сайта
После базового запуска обычно хочется улучшить интерфейс и доступы. Здесь важно не править ядро WordPress, тему или файлы плагина. Все изменения должны быть обратимыми: через настройки, дочернюю тему, Code Snippets или аккуратный CSS в безопасном месте.
Подписи календаря и сообщения формы
Во вкладке Labels можно включить custom labels и изменить названия дней, месяцев, сообщений об ошибках и текстов, связанных с деталями записи. Для русскоязычного сайта это один из первых шагов после проверки формы. Не переводите только видимую кнопку, оставляя ошибку "time slot unavailable" на английском. Пользователь должен понимать, почему он не может выбрать время.
После изменения подписей пройдите форму заново: выберите доступный слот, недоступный слот, дату без расписания и отправку с пустым email. Так вы увидите не только красивый календарь, но и реальные сообщения на ошибочных сценариях.
Права доступа к Appointments
По умолчанию управление записями доступно не всем ролям. Официальная документация Crocoblock показывает фильтры, которые можно добавить через Code Snippets или файл дочерней темы. Такой код нужен, если редактор или менеджер должен видеть Appointments, но не должен получать полный администраторский доступ.
Пример ниже даёт роли с возможностью edit_posts доступ к списку записей и добавлению записи. Используйте его только если понимаете, какая роль получает доступ. После включения зайдите под тестовым пользователем и проверьте, какие действия ему реально доступны.
add_filter( 'jet-apb/capability', function( $capability, $context ) {
$allowed_contexts = [
'appointment-add-appointment',
'appointments-list',
];
if ( in_array( $context, $allowed_contexts, true ) ) {
return 'edit_posts';
}
return $capability;
}, 10, 2 );
Откат простой: отключите snippet в Code Snippets или удалите фильтр из дочерней темы. Не расширяйте список contexts автоматически. Если менеджеру нужно только смотреть записи, не давайте ему удаление или обновление интеграций.
Небольшая CSS-правка формы
Если календарь и поля выглядят тесно в теме, лучше добавить мягкий CSS к контейнеру формы, чем менять шаблоны плагина. Пример ниже задаёт больше воздуха вокруг формы и не вмешивается в логику полей:
.jet-form-builder .jet-apb-calendar,
.jet-form-builder .appointment-calendar {
margin-bottom: 18px;
}
.jet-form-builder .jet-form-builder__field-wrap {
margin-bottom: 14px;
}
Проверьте результат на странице услуги, общей странице записи и мобильном экране. Если тема уже задаёт свои отступы, этот код может быть лишним. Откат - удалить CSS из кастомайзера, дочерней темы или места, куда вы его добавили.
Частые проблемы и диагностика
Большинство проблем JetAppointments Booking связано не с установкой, а с несовпадением данных: форма передаёт не тот ID, расписание закрывает слот, календарь подключён к другому часовому поясу, WooCommerce ждёт вспомогательный товар, а администратор проверяет не тот статус. Ниже - практическая диагностика по симптомам.
В форме нет свободных слотов
Симптом: пользователь выбирает услугу и провайдера, но календарь не показывает доступное время. Иногда дата активна, но список слотов пустой.
Возможные причины: не заданы рабочие часы, выбран не тот тип расписания, у услуги или провайдера включён custom schedule, все дни закрыты через Days Off, буфер перекрывает доступное время, включён Google Calendar и внешний календарь закрывает слот, либо кэш слотов ещё не обновился.
Что проверить: откройте общие Working Hours, затем запись услуги и запись провайдера. Сравните приоритет графиков. Проверьте дату, на которую жалуется пользователь. Если в документации Tools описан случай, когда новый слот не появляется после добавления, очистите кэш из таблиц JetAppointment через вкладку Tools, а затем снова откройте публичную форму.
Как исправить: задайте рабочие интервалы, уберите лишний day off, временно отключите custom schedule у провайдера, уменьшите буфер или проверьте календарную синхронизацию. После исправления делайте новый тест в публичной части, а не только в админке.
Провайдеры не фильтруются по выбранной услуге
Симптом: форма показывает всех специалистов или не показывает никого, хотя в карточке услуги провайдер выбран.
Возможная причина: в форме использовано обычное поле выбора вместо Appointment Provider field или неверно указан источник Service ID. Официальная инструкция отдельно предупреждает, что для выбора провайдера нужно использовать поле JetAppointment, потому что оно генерирует список провайдеров по выбранной услуге.
Как исправить: замените поле на Appointment Provider field, в Field Settings выберите получение Service ID из поля формы или из hidden field, затем проверьте выбранное поле услуги. После этого заново сопоставьте Provider ID в действии Insert appointment.
Запись создаётся, но в админке пустые поля
Симптом: заявка появляется в Appointments, но нет имени, email, провайдера, даты или дополнительного значения.
Возможная причина: поля формы не сопоставлены в действии Insert appointment, дополнительная колонка есть в таблице, но не выбрана в действии, или поле было переименовано после настройки действия.
Как исправить: откройте JetForm settings, найдите Post Submit Actions и проверьте каждое соответствие. Создайте новую тестовую запись с уникальным именем. Если поле всё ещё пустое, временно упростите форму до услуги, провайдера, даты, email и имени, а дополнительные поля возвращайте по одному.
После WooCommerce оплата не работает или запись зависает
Симптом: пользователь отправляет форму, но checkout не открывается, заказ не создаётся или запись остаётся в неподходящем статусе.
Возможные причины: не включена WooCommerce Integration, удалён вспомогательный товар Appointment, не настроен WooCommerce price field, не сопоставлены checkout-поля или статус записи не связан с заказом так, как ожидает администратор.
Как исправить: проверьте General Settings JetAppointment, наличие вспомогательного товара, действие Insert appointment и тестовый заказ в WooCommerce Orders. Не удаляйте служебный товар. Если two-way WC orders sync включён, временно отключите его на тестовом сценарии и сравните поведение статусов.
Время в форме и Google Calendar не совпадает
Симптом: пользователь выбрал одно время, а в календаре событие отображается в другом интервале или слот закрывается не там, где ожидалось.
Возможная причина: часовой пояс WordPress, Google Calendar или custom timezone в JetAppointment настроены по-разному. В документации по двухсторонней синхронизации Crocoblock отдельно выделяет проверку time zone settings.
Как исправить: проверьте Settings - General в WordPress, настройки Google Calendar и параметры timezone во вкладке Layout JetAppointment. После изменения создайте тестовое событие с понятным временем и проверьте направление "сайт - календарь" и "календарь - сайт".
Менеджер не видит Appointments
Симптом: пользователь с ролью редактора или менеджера не видит раздел записей, хотя должен обрабатывать заявки.
Возможная причина: роль не имеет нужной capability. В документации Crocoblock есть фильтры для доступа к странице Appointments и отдельным endpoints.
Как исправить: используйте Code Snippets или дочернюю тему, добавьте только те contexts, которые нужны роли. После проверки под тестовым пользователем откатите лишние права. Не выдавайте полный administrator только ради просмотра записей.
Видео по настройке JetAppointment
В официальной документации Crocoblock к мастеру установки приложен точный ролик по JetAppointment. Его полезно смотреть после прочтения разделов про подготовку типов записей и мастер: видео закрывает intent "инструкция по JetAppointments Booking" и показывает порядок начальной настройки в интерфейсе, а текст выше помогает понять, зачем нужны эти шаги и где чаще всего возникают ошибки.
Сначала обратите внимание на подготовку service/provider post types, затем на таблицу данных и рабочие часы. После просмотра не копируйте настройки механически: перенесите только тот вариант, который совпадает с вашей моделью услуги.
FAQ по JetAppointments Booking
Нужно ли устанавливать JetEngine?
Да. Официальная документация Crocoblock указывает JetEngine как обязательную зависимость для JetAppointment. Плагин может использовать custom post types, созданные другими инструментами, но JetEngine нужен для работы самого стека.
Можно ли использовать JetAppointments Booking без WooCommerce?
Да, если запись не должна сразу переходить к оплате. WooCommerce нужен для сценария, где посетитель подтверждает бронирование через checkout и заказ. Для бесплатной записи, ручного подтверждения или простой заявки можно сначала настроить форму и Appointments без оплаты.
Почему email в форме так важен?
В документации по формам Crocoblock email field отмечен как обязательный для успешной отправки. Кроме того, email нужен для уведомлений, подтверждений и связи с клиентом. Если бизнес не хочет собирать телефон, email всё равно должен быть корректно сопоставлен в действии Insert appointment.
Можно ли дать менеджеру доступ только к записям?
Можно, но делать это нужно через capabilities и проверенные фильтры, а не через выдачу полного доступа администратора. В документации есть примеры фильтров для страницы Appointments и отдельных endpoints. После настройки обязательно проверьте роль на тестовом пользователе.
Что выбрать: Slot, Time Picker или Recurring?
Для большинства услуг начинайте со Slot, потому что фиксированная длительность проще проверяется. Time Picker нужен для выбора диапазона, а Recurring - для повторяющихся визитов. Не включайте повторяемость только потому, что она есть в настройках: она должна соответствовать реальной услуге.
Почему слот занят в Google Calendar, но пользователь всё равно видит время?
Проверьте, включена ли синхронизация событий из Google Calendar, выбран ли правильный календарь, совпадают ли часовые пояса и прошёл ли интервал синхронизации. Документация указывает минимальный интервал в одну минуту для проверки, но на рабочем сайте не стоит диагностировать синхронизацию только по одному моментальному обновлению.
Подойдёт ли плагин для аренды на несколько суток?
Обычно нет. JetAppointment ориентирован на почасовые услуги и слоты. Для посуточного бронирования, аренды жилья или объектов на период лучше рассматривать инструменты для booking по датам, включая JetBooking в экосистеме Crocoblock.
Когда JetAppointments Booking будет удачным выбором
JetAppointments Booking стоит использовать, если вам нужна управляемая запись на услуги внутри WordPress: с услугами, провайдерами, расписанием, формой, статусами, админским календарём и возможностью подключить оплату или внешние календари. Его сила не в мгновенной установке за пару кликов, а в гибкости. Чем лучше вы заранее описали структуру услуг, тем стабильнее будет результат.
Перед рабочим запуском пройдите весь путь как посетитель: выберите услугу, провайдера, дату, слот, отправьте форму, проверьте Appointments, письмо, статус, занятость слота и, если нужно, WooCommerce order. Затем сделайте негативный тест: дата без слотов, неправильный email, отмена, незавершённая оплата, занятое время из Google Calendar. Такая проверка быстрее выявляет ошибки, чем ожидание первой реальной жалобы клиента.
Если после настройки вы видите, что модель подходит вашему сайту, можно получить файл JetAppointments Booking и переходить к аккуратному тестированию на копии или тестовой странице. Не переносите сразу все интеграции в рабочий процесс: сначала базовая запись, затем формы и статусы, затем письма, затем оплата, затем календарь и онлайн-встречи.
Хорошо настроенный JetAppointment превращает страницу услуги в рабочий инструмент: посетитель видит доступное время, администратор получает запись с понятным статусом, а команда меньше тратит времени на ручные уточнения. Именно это и должно быть критерием успешной настройки.


