Test: FluentBooking / Baza / Bootstrap Calendar (calendar + disponibilitate + primul tip de eveniment)
Pluginul, in actiune
Mai jos e widget-ul REAL de rezervare, randat de FluentBooking pe aceasta pagina prin shortcode-ul [fluent_booking id="3"]. Orele afisate sunt calculate din programul de disponibilitate creat la acest test — deci ce vezi e chiar pluginul care lucreaza, nu o descriere a lui.
Capabilitate: calendar_bootstrap_create — creare primul Calendar (host space) pe un site FluentBooking gol.
Rulare: run-fb-5c-20260811 · Data: 2026-08-11 · Rută: POST /wp-json/fluent-booking/v2/calendars → HTTP 200
Ce s-a creat, cu o singură cerere
- Calendar id=1, titlu „plugin-learner”, slug
plugin-learner, tipsimple, fusEurope/Bucharest - Program de disponibilitate id=1 „Weekly Hours”,
default=true— creat implicit, nu cerut explicit - Primul tip de eveniment id=1 „PL Test 30 min Call”, slug
30min, 30 minute, statusdraft
Ce am învățat, verificat live
- Payload-ul e învelit în cheia
calendar, nu plat. Controllerul citește$request->get('calendar'). - Orele se convertesc în UTC la scriere. Am trimis 09:00–17:00 în
Europe/Bucharest; citirea înapoi arată 07:00–15:00. Diferența e corectă, nu o eroare. - Slug-ul calendarului NU e ales de apelant — e derivat din numele de utilizator WordPress al gazdei și apare în adresa publică a paginii de rezervare.
- Ruta poate instala pluginuri. Dacă payload-ul conține cheia
features, controllerul apeleazăOnboardingService::installAddons(). Cheia e exclusă intenționat din schema adaptorului. - Neidempotentă: a doua rulare pentru același utilizator întoarce 422 „The user already has a calendar”.
Postare-dovadă permanentă, generată de plugin-learner. Nu se șterge.