Налаштування 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 через офіційний аддон. Схема:
- Нове бронювання → створює подію в Google Calendar через Calendar API
- Подія в Google Calendar → при наступній синхронізації блокує слот в Bookings
Потрібна Google Cloud Console: проект, OAuth 2.0 credentials, включений Calendar API. Синхронізація запускається через WP-Cron кожні 15 хвилин або принудово.
Терміни: один продукт-послуга з простим розписанням — 1 робочий день. Кілька ресурсів, Google Calendar, користувальницькі поля, логіка ціноутворення — 3–4 дні.







