Architettura
Riferimento sviluppatori: questa sezione è per chi estende Booking Engine Connector con temi o plugin.
I diagrammi di riferimento usano Mermaid. I namespace PHP sono sotto BookingEngineConnector\.
Panoramica
Il plugin:
- Carica l’autoloader PSR-4 (
includes/), definisce costantiBEC_*, eseguebootstrap.php(migrazioni database), poiPlugin::instance()->init(). - All’attivazione: migrazioni incrementali, opzioni predefinite (intervallo sync, default checkout/fallback), pianifica WP-Cron.
- Su
plugins_loaded: helper template, text domain, registrazione ricerca/front/admin/sync/CPT/registry campi/shortcode/hook query Elementor.
Elementor Pro (Loop Grid)
BookingEngineConnector\Elementor\AvailabilityQueryFilter registra l’azione Elementor elementor/query/{query_id} (query id predefinita bec_available_only, sovrascrivibile con bec_elementor_availability_query_id). Restringe il Loop Grid usando QuoteService::getQuote() e il SearchContext corrente.
Filtri sviluppatore: bec_elementor_availability_query_id, bec_elementor_available_post_ids, bec_elementor_availability_max_units.
Guida utente: Elementor — nascondere unità senza disponibilità.
Bootstrap e registrazione moduli
Architettura a strati
Sequenza sync
Flusso front — query string → preventivo → CTA o fallback
I parametri URL includono bec_checkin, bec_checkout, chiavi occupazione opzionali (vedi SearchContext).
Gli shortcode riusano gli stessi servizi (SearchForm, CheckoutUrlService, QuoteService, ecc.).
Internals provider Kross
Mappa directory
Mappa concettuale
| Area | Responsabilità |
|---|---|
| Inventario remoto | ProviderInterface::fetchRemoteUnits() |
| Post/meta persistiti | SyncService + campi core canonici + meta mappati opzionali |
| Contesto prenotazione | SearchContext costruito dagli argomenti query bec_* |
| Estensibilità | Filtri/azioni con prefisso bec_* |