Настройка WooCommerce Bookings (бронирование)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка WooCommerce Bookings (бронирование)
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Настройка WooCommerce Bookings (бронирование)

WooCommerce Bookings добавляет к магазину систему бронирования временных слотов: запись на услугу, аренда, консультации, экскурсии. Продукт превращается в «бронируемый ресурс» с расписанием, доступностью и правилами.

Модель данных плагина

Bookings работает с тремя сущностями:

  • Bookable product — продукт с настроенными слотами и ценами
  • Booking — конкретная запись: кто, когда, какой продукт, статус
  • Resource — дополнительный ресурс, привязанный к продукту (например, конкретный мастер или кабинет)

Данные хранятся в wp_posts (тип wc_booking) и wp_postmeta. Расписание доступности — в мета-поле _wc_booking_availability.

Типы бронирования

При создании продукта выбирается duration type:

Тип Применение
Fixed blocks Слоты фиксированного размера (30 мин, 1 час)
Customer-defined Клиент выбирает произвольную продолжительность
Fixed duration days Ночи в отеле, дни аренды

Для посуточной аренды: duration = 1 day, min duration = 1, max duration = 14. Стоимость умножается на количество ночей.

Правила доступности

Доступность настраивается через набор правил с приоритетами:

Rule 1: All days → Bookable (приоритет низкий)
Rule 2: Saturday, Sunday → Not bookable
Rule 3: 2025-12-31 → Not bookable (праздник)
Rule 4: Monday 09:00–18:00 → Bookable

Правила обрабатываются по убыванию приоритета. Фильтр через хук:

add_filter( 'wc_bookings_product_is_available', function( $is_available, $start, $end, $qty, $product ) {
    // кастомная логика: проверить внешний календарь, CRM и т.д.
    return $is_available;
}, 10, 5 );

Ресурсы и множественное бронирование

Ресурсы — это независимо доступные единицы одного продукта. Пример: услуга «Стрижка» с ресурсами «Мастер Анна» и «Мастер Сергей». Каждый ресурс имеет собственное расписание и может добавлять доценку к стоимости.

Параметр has_persons: true включает выбор количества людей, min_persons / max_persons ограничивают диапазон. Цена может пересчитываться на человека.

Синхронизация с Google Calendar

Bookings поддерживает двустороннюю синхронизацию с Google Calendar через официальный аддон WooCommerce Bookings — Google Calendar. Схема:

  1. Новое бронирование → создаёт событие в Google Calendar через Calendar API
  2. Событие в Google Calendar → при следующей синхронизации блокирует слот в Bookings

Необходима Google Cloud Console: проект, OAuth 2.0 credentials, включённый Calendar API. Синхронизация запускается через WP-Cron каждые 15 минут или принудительно из настроек.

// Принудительный запуск синхронизации
do_action( 'wc-booking-gcal-sync' );

Уведомления

Плагин добавляет несколько типов писем в WooCommerce → Emails:

  • New Booking — менеджеру при создании
  • Booking Confirmed — клиенту при подтверждении
  • Booking Reminder — клиенту за N часов до начала (настраивается)
  • Booking Cancelled — при отмене

Напоминания реализованы через Action Scheduler — задачи планируются в момент подтверждения бронирования.

Кастомные поля при бронировании

// Добавить поле выбора мастера перед бронированием
add_filter( 'woocommerce_booking_form_fields', function( $fields, $product ) {
    $fields['preferred_master'] = [
        'type'    => 'select',
        'label'   => 'Предпочтительный мастер',
        'options' => [ '' => 'Любой', 'anna' => 'Анна', 'sergey' => 'Сергей' ],
    ];
    return $fields;
}, 10, 2 );

Типичные проблемы

Слоты не появляются на фронте — чаще всего timezone mismatch: WordPress установлен в UTC, а правила доступности заданы по локальному времени. Проверить: Settings → General → Timezone должен совпадать с ожиданиями клиента.

Двойное бронирование одного слота — не настроен параметр has_resources или capacity. Без ресурсов и при booking_duration_type = fixed нужно явно указать qty = 1 (максимум брони на слот).

Сроки

Настройка одного продукта-услуги с простым расписанием — 1 рабочий день. Несколько ресурсов, Google Calendar, кастомные поля, логика ценообразования по датам — 3–4 дня.