Ось сценарій, з яким я стикаюся постійно при налаштуванні сайтів з бронюванням на WooCommerce: у клієнта вже є 30 товарів з виставленими цінами. Він вів їх у WooCommerce місяцями. Потім ми встановлюємо плагін бронювання, і той каже — «чудово, тепер введіть ціни ще раз, ось тут». Вводиш. А через шість тижнів хтось оновлює WooCommerce і забуває про плагін бронювання. І клієнт бачить неправильну ціну.
Дрібниця, яка на масштабі перетворюється на справжню проблему. Саме цей сценарій Baza Booking Calendar і вирішує через інтеграцію з власними метаданими.
Чому більшість плагінів бронювання WooCommerce створюють хаос з цінами
Офіційний плагін WooCommerce Bookings ($249/рік), YITH Bookings та більшість альтернатив на кшталт PluginHive ставляться до цін як до власної зони відповідальності. Ти налаштовуєш ціну всередині налаштувань плагіна бронювання, і вона жодним чином не пов’язана з фактичною ціною товару WooCommerce чи будь-яким іншим полем на сайті. Це нормально, якщо починаєш з нуля — але більшість сайтів не починають.
На практиці все зазвичай виглядає так:
- Ціни оренди студії або майданчика вже живуть у товарах WooCommerce як
_regular_price - Погодинні тарифи зберігаються в числових полях ACF (Advanced Custom Fields)
- Мінімальна тривалість бронювання задана окремо для кожного сервісу в метаполі власного типу запису
- Таблиці цін веде редактор, який навіть не знає, що на сайті є якийсь плагін бронювання
Зі звичайним плагіном бронювання WooCommerce всі ці дані нічого не варті. Ти дублюєш їх вручну і сподіваєшся, що обидва джерела залишаться синхронізованими. Не залишаться.
Читання цін напряму з метаданих товару WooCommerce
Baza Booking Calendar йде в протилежному напрямку. Замість того щоб зберігати власну ізольовану ціну, він може підтягнути ціну з будь-якого метаполя WordPress, прикріпленого до сервісу — включно зі стандартним полем WooCommerce _regular_price, яке є в кожному товарі.
Як увімкнути ціноутворення з власних метаданих
У налаштуваннях сервісу увімкни Display the price from the custom meta data і вкажи мета-ключ, з якого потрібно читати ціну. Для стандартних товарів WooCommerce це _regular_price. Для ціни зі знижкою — _sale_price. Для поля ACF з назвою «hourly_rate» — просто hourly_rate, тобто та назва, яку ти задав при створенні поля.

Після збереження календар бронювання автоматично показує ціну з цього метаполя. Змінюєш ціну товару в WooCommerce — при наступному завантаженні сторінки календар відображає оновлену ціну. Жодних синхронізацій, вебхуків, ручних дій.
Є також поле Final Price, яке додає відсотковий коефіцієнт поверх значення з метаполя. Зручно, якщо товар WooCommerce відображає базову вартість, а бронювальний сервіс має додаткову націнку.
Які джерела цін підтримуються
- Звичайна ціна WooCommerce — мета-ключ
_regular_price - Ціна зі знижкою WooCommerce — мета-ключ
_sale_price - Числове або текстове поле ACF — назва поля, яку ти задав в ACF (не ключ
field_, а саме назва) - Будь-які власні метадані — з теми, іншого плагіна, власного типу запису, будь-що збережене через
update_post_meta()
Мінімальний час бронювання з метаданих — та сама логіка
Та сама логіка працює і для мінімальної тривалості бронювання. Замість того щоб прописувати кількість годин для кожного сервісу прямо в плагіні, ти вказуєш на метаполе, де це значення вже зберігається окремо для кожного сервісу.
Увімкни Display the minimum number of hours or time slots from custom metadata і вкажи мета-ключ — наприклад _minimum_amount або той, що використовуєш. Календар автоматично дотримуватиметься цього мінімуму, і він буде різним для кожного сервісу залежно від того, що зберігається в полі.
Це справді корисно коли:
- Різні сервіси мають різну мінімальну тривалість, і ти хочеш щоб редактори керували нею через ACF без заходу в налаштування плагіна
- Мінімальний час бронювання надходить із зовнішньої системи, синхронізованої в метаполя WordPress
- У тебе 20+ сервісів, і думка про те, щоб налаштовувати мінімуми по одному в плагіні бронювання, не викликає ентузіазму
Реальні кейси, де це справді має значення
Фотостудії та знімальні простори
Фотостудія здає в оренду три зали за різними погодинними тарифами — всі оформлені як товари WooCommerce. Baza Booking Calendar читає _regular_price з кожного товару. Менеджер студії змінює ціну в WooCommerce — вона одразу з’являється у формі бронювання. Жодного другого кроку.
Оренда обладнання з прайсами в ACF
Компанія з оренди обладнання зберігає погодинні тарифи та мінімальну тривалість оренди в полях ACF для кожної позиції. Календар бронювання читає обидва поля напряму. Окремо налаштовувати кожну позицію в плагіні не потрібно.
Коворкінги з великою кількістю приміщень
Коворкінг керує 15 кімнатами у WooCommerce. З одним мета-ключем, налаштованим у Baza Booking Calendar, всі 15 сервісів підтягують ціни автоматично. Налаштувати 15 сервісів окремо в звичайному плагіні бронювання — це година роботи. Тут — хвилина.
Чим це відрізняється від інших плагінів бронювання WooCommerce
WooCommerce Bookings від Woo, YITH Bookings та Bookings for WooCommerce від PluginHive — всі керують цінами всередині себе. Вбудованого способу підтягнути ціни з метаполів товарів WooCommerce або полів ACF немає. Ти вводиш ціни в налаштуваннях плагіна бронювання окремо від того місця, де вони вже зберігаються на сайті.
Baza Booking Calendar створювався для сайтів, де вже є структура даних — товари WooCommerce, поля ACF, власні типи записів — і потрібен шар бронювання, який працює з цією структурою, а не паралельно до неї.
Налаштування за 3 кроки
- Відкрий будь-який сервіс у Baza Booking Calendar і перейди до Settings
- Увімкни Display the price from the custom meta data і вкажи мета-ключ (наприклад
_regular_priceдля WooCommerce або назву поля ACF) - За потреби увімкни Display the minimum number of hours from custom metadata і вкажи мета-ключ для мінімальної тривалості
Після цього обидва значення читаються з наявних даних. Оновлюєш джерело — календар підхоплює зміни.
Часті запитання
Мета-ключ _regular_price зберігається на рівні товару. Для варіативних товарів вкажи мета-ключ конкретної варіації або використай поле ACF, яке зберігає зведену ціну для бронювання.
Так. Поле Final Price приймає відсоткову надбавку, яка автоматично застосовується поверх ціни з метаполя.
Календар повертається до ціни, налаштованої безпосередньо в параметрах сервісу. Нічого не ламається — запасний варіант завжди безпечний.
Так. ACF зберігає значення як стандартні метадані WordPress. Використовуй назву поля ACF — не ключ field_ — як мета-ключ у налаштуваннях Baza Booking Calendar.