Passa al contenuto principale

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:

  1. Carica l’autoloader PSR-4 (includes/), definisce costanti BEC_*, esegue bootstrap.php (migrazioni database), poi Plugin::instance()->init().
  2. All’attivazione: migrazioni incrementali, opzioni predefinite (intervallo sync, default checkout/fallback), pianifica WP-Cron.
  3. 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

AreaResponsabilità
Inventario remotoProviderInterface::fetchRemoteUnits()
Post/meta persistitiSyncService + campi core canonici + meta mappati opzionali
Contesto prenotazioneSearchContext costruito dagli argomenti query bec_*
EstensibilitàFiltri/azioni con prefisso bec_*

Documentazione sviluppatori correlata