Vai al contenuto

Come inserire JetBookIn nel tuo sito: tutti gli shortcode e i widget Elementor con tutte le opzioni, la pagina in cui va ciascuno, come adattarli ai colori del tuo brand, come funzionano i siti multilingue e – per gli sviluppatori – REST API, hook e comandi WP-CLI.

Le pagine che ti servono

Un tipico sito con JetBookIn ha queste pagine. Ogni blocco si può inserire con uno shortcode (qualsiasi tema o editor) o con il widget Elementor corrispondente.

Pagina Cosa inserire Widget Elementor
Home page [jetbookin_search_hero] o [jetbookin_search], [jetbookin_rooms], [jetbookin_reviews] Hero di ricerca, Ricerca prenotazione, Griglia / carosello camere, Recensioni
Prenota / risultati di ricerca (per es. /book/) [jetbookin_results] Risultati prenotazione
La pagina di ogni tipologia di camera Creata automaticamente (vedi Pagine delle camere), oppure [jetbookin_booking] più gli shortcode della camera Box prenotazione camera, Galleria camera, Caratteristiche camera, Prezzo camera a partire da, Servizi della camera, Condizioni e tariffe della camera
Conferma della prenotazione [jetbookin_confirmation] – creata per te all’attivazione Conferma prenotazione / Gestisci prenotazione
Contatti / posizione [jetbookin_property_info] Info struttura e mappa
Pagina delle recensioni (facoltativa) [jetbookin_review] Modulo recensione
Pulizie (facoltativa, Pro) [jetbookin_housekeeping] –
Pagina del proprietario (facoltativa, Pro) [jetbookin_owner] –

La configurazione per una piccola villa con tre appartamenti può essere semplicissima: la home page con l’Hero di ricerca e la griglia delle camere, una pagina per appartamento (creata automaticamente) e la pagina di conferma. Un hotel di 20 camere di solito aggiunge una pagina Prenota con i risultati, così la ricerca di ogni pagina porta lì.

Pagine di conferma della prenotazione e di checkout

Due impostazioni in JetBookIn → Impostazioni → Generale dicono a JetBookIn dove mandare gli ospiti:

Impostazione Predefinito A cosa serve
ID della pagina di conferma prenotazione La pagina Conferma della prenotazione creata all’attivazione La pagina con [jetbookin_confirmation] o con il widget Conferma prenotazione / Gestisci prenotazione. Gli ospiti arrivano qui dopo il pagamento, e ogni link Visualizzi la Sua prenotazione nelle e-mail la apre. È anche il posto dove gli ospiti ritrovano la loro prenotazione con riferimento ed e-mail.
ID della pagina di checkout Vuoto Dove prosegue Prenota nel riquadro di prenotazione di una camera: una pagina con il widget Risultati prenotazione o Conferma prenotazione, per es. la tua pagina Prenota. Vuoto = la pagina di conferma della prenotazione.
URL dei termini e condizioni Vuoto Se impostato, gli ospiti devono accettare i termini prima di pagare. La pagina si apre in un riquadro sopra il checkout.

A seconda di come viene aperta, la pagina di conferma mostra: il checkout per un soggiorno scelto in un riquadro di prenotazione; la prenotazione dell’ospite (da un link con riferimento e chiave della prenotazione); oppure il modulo Trova la Sua prenotazione. Non ti serve mai più di una pagina di questo tipo per lingua. Cosa possono fare lì gli ospiti è descritto in La pagina della prenotazione dell’ospite.

Per trovare l’ID di una pagina, aprila in Pagine; il numero dopo post= nella barra degli indirizzi è l’ID.

I temi possono adattare la pagina intorno alla prenotazione con due classi del body: jbi-is-checkout mentre l’ospite sta ancora prenotando, e jbi-is-booking quando c’è una prenotazione da mostrare – per esempio per nascondere un titolo “Grazie” durante il checkout.

Impostazioni, sezione Generale con i campi ID della pagina di conferma prenotazione, ID della pagina di checkout e URL dei termini
Impostazioni → Generale: le pagine a cui vengono mandati gli ospiti.

Shortcode di prenotazione

Questi blocchi sono interattivi: caricano disponibilità e prezzi in tempo reale e richiedono JavaScript (i visitatori senza JavaScript vedono Attivi JavaScript per prenotare online.). Per gli attributi yes/no, qualsiasi valore diverso da no vale come sì.

[jetbookin_search] – modulo di ricerca

Date e ospiti, poi un pulsante di ricerca. Senza una pagina dei risultati, i risultati si aprono sotto il modulo.

Attributo Valori Predefinito A cosa serve
results_url Un URL Vuoto La pagina con [jetbookin_results] a cui inviare la ricerca. Vuoto = risultati sotto il modulo.
property ID della struttura 0 (tutte) Cerca solo tra le camere di questa struttura.
layout horizontal, vertical horizontal Una barra larga quanto la pagina, oppure campi impilati per una barra laterale.
button Testo Cerca Etichetta del pulsante.
prices yes, no yes Il prezzo per notte più basso sotto ogni giorno del selettore di date.
[jetbookin_search results_url="/book/" button="Check availability"]

[jetbookin_results] – risultati di ricerca e checkout

Elenca le tipologie di camera libere per le date scelte con le loro tariffe, permette all’ospite di sceglierne una o più e gestisce il checkout. Se non c’è nulla di libero, propone altre date.

Attributo Valori Predefinito A cosa serve
property ID della struttura 0 (tutte) Solo le camere di questa struttura.
show_search yes, no yes Mostra la barra di ricerca sopra i risultati.

[jetbookin_booking] – riquadro di prenotazione della camera

Calendario, ospiti, tariffe e prezzo per una tipologia di camera. Prenota prosegue nella pagina di checkout con il soggiorno già compilato.

Attributo Valori Predefinito A cosa serve
room ID della tipologia di camera La pagina della tipologia di camera corrente Quale tipologia di camera. Obbligatorio ovunque tranne nella pagina della tipologia stessa.
months 1, 2 1 Mesi mostrati nel calendario.
checkout page, inline page page prosegue nella pagina di checkout (una pagina intera per dati e pagamento). inline tiene l’intera prenotazione dentro il riquadro. Senza pagina di checkout né di conferma, il riquadro prenota inline.
[jetbookin_booking room="42" months="2"]
Una pagina camera con il riquadro di prenotazione che mostra il calendario con i prezzi, gli ospiti e un pulsante Prenota
Il riquadro di prenotazione in una pagina camera.

[jetbookin_calendar] – calendario della disponibilità

Attributo Valori Predefinito A cosa serve
room ID della tipologia di camera La pagina della tipologia di camera corrente Quale tipologia di camera.
months 1–3 2 Mesi mostrati.
prices yes, no yes Prezzi per notte sui giorni.

[jetbookin_confirmation] – conferma / gestione della prenotazione

Nessun attributo. [jetbookin_manage] fa esattamente la stessa cosa. Inseriscilo in una sola pagina (per lingua) e imposta quella pagina come ID della pagina di conferma prenotazione.

[jetbookin_search_hero] – hero a tutta larghezza con ricerca

Attributo Valori Predefinito A cosa serve
image URL dell’immagine Vuoto Foto di sfondo.
overlay 0–90 35 Quanto viene scurita la foto, in %.
heading Testo Vuoto Titolo principale.
heading_tag h1, h2, div h1 Tag HTML del titolo.
subheading Testo Vuoto Riga sotto il titolo.
min_height Pixel (240 o più) 560 Altezza minima dell’hero.
align left, center center Allineamento del testo.
results_url Un URL Vuoto La pagina dei risultati per la ricerca (come in [jetbookin_search]).
button Testo Verifica disponibilità Etichetta del pulsante.
[jetbookin_search_hero image="https://example.com/wp-content/uploads/pool.jpg" heading="Three stone houses above Elounda" subheading="Book direct for the best price" results_url="/book/"]

Shortcode per camere e struttura

Questi vengono generati sul server (ottimo per velocità e motori di ricerca). Quando un attributo indica una tipologia di camera, ometterlo usa la tipologia della pagina mostrata; gli attributi della struttura ricadono sulla struttura corrente, sulla struttura della camera corrente o sulla tua prima struttura.

Quando un blocco non ha nulla da mostrare (nessuna foto, nessun servizio…), gli ospiti non vedono niente; lo staff connesso e l’editor di Elementor vedono un suggerimento su cosa compilare.

[jetbookin_rooms] – griglia o carosello delle camere

Attributo Valori Predefinito A cosa serve
property ID della struttura 0 (tutte) Solo le camere di questa struttura.
ids ID delle tipologie di camera separati da virgole Vuoto (tutte) Solo queste camere, in quest’ordine.
limit 1–50 12 Numero massimo di camere.
orderby menu_order, title, price menu_order Il tuo ordine personalizzato, per nome, oppure prima il prezzo “a partire da” più basso.
layout grid, carousel grid Una griglia, oppure una fila scorrevole con frecce.
columns 1–4 3 Schede per riga (schede visibili insieme in un carosello).
image_ratio per es. 4/3, 3/2, 16/9, 1/1, 3/4 4/3 Forma della foto della scheda.
show_specs yes, no yes Ospiti, letti e dimensione.
show_excerpt yes, no yes La descrizione breve della camera (riassunto).
amenities Numero 4 Quanti servizi mostrare; 0 li nasconde.
show_price yes, no yes Il prezzo “a partire da … / notte”.
button Testo (vuoto lo nasconde) Dettagli e prenotazione Etichetta del pulsante.
heading_tag h2, h3, h4, div h3 Tag HTML dei nomi delle camere.
[jetbookin_rooms layout="carousel" columns="3" orderby="price" amenities="0"]

[jetbookin_room_gallery]

Attributo Valori Predefinito A cosa serve
room ID della tipologia di camera Tipologia di camera corrente Di chi sono le foto.
post ID del post Vuoto Mostra invece le foto di un altro post, per es. quelle della struttura.
layout mosaic, grid, slider mosaic Il mosaico è una foto grande e quattro piccole, con Mostra tutte le … foto quando sono più di cinque.
columns Numero 3 Colonne per griglia e slider.
ratio per es. 4/3 4/3 Forma delle foto nella griglia.
limit Numero 0 (tutte) Numero massimo di foto.
featured yes, no yes no mostra solo le foto della galleria, per es. quando l’immagine in evidenza è un’illustrazione.
lightbox yes, no yes Apre le foto a schermo intero al clic.

[jetbookin_room_amenities]

Attributo Valori Predefinito A cosa serve
room ID della tipologia di camera Tipologia di camera corrente Quale camera.
columns 1–4 3 Colonne dell’elenco.
limit Numero 0 (tutti) Numero massimo di servizi.
icons yes, no yes Mostra un’icona accanto a ciascuno.

[jetbookin_room_specs]

Attributo Valori Predefinito A cosa serve
room ID della tipologia di camera Tipologia di camera corrente Quale camera.
items Uno o più tra guests, beds, size, separati da virgole guests,beds,size Cosa mostrare, in quest’ordine.
layout inline, list inline Su una riga, oppure uno sotto l’altro.

[jetbookin_room_price]

Il prezzo per notte più basso dalle tue tariffe, per es. da €95 / notte.

Attributo Valori Predefinito A cosa serve
room ID della tipologia di camera Tipologia di camera corrente Quale camera.
prefix Testo da Prima del prezzo.
suffix Testo / notte Dopo il prezzo.
note Testo Vuoto Una piccola riga sotto, per es. Miglior prezzo prenotando direttamente.

[jetbookin_room_policies]

Attributo Valori Predefinito A cosa serve
room ID della tipologia di camera Tipologia di camera corrente Quale camera.
times yes, no yes Orari di check-in e check-out.
rates yes, no yes Ogni piano tariffario con pasti, condizioni di cancellazione e di pagamento.
text yes, no yes Il testo delle condizioni della struttura.

[jetbookin_property_info]

Attributo Valori Predefinito A cosa serve
property ID della struttura Struttura corrente / prima struttura Quale struttura.
items Uno o più tra checkin, checkout, address, phone, email, registry Tutti e sei Cosa mostrare, in quest’ordine. L’indirizzo apre Google Maps, telefono ed e-mail sono link.
layout list, grid list Impilati o in griglia.
map yes, no yes Una mappa Google incorporata con le coordinate o l’indirizzo della struttura.
map_height Pixel (120 o più) 280 Altezza della mappa.

Shortcode per le recensioni Pro

Entrambi richiedono il modulo Recensioni degli ospiti; con il modulo disattivato non mostrano nulla.

[jetbookin_reviews] – recensioni pubblicate

Il punteggio medio con la sua etichetta (per es. Eccellente), le schede delle recensioni con le tue risposte, un pulsante Mostra altre recensioni e i dati di valutazione schema.org per i motori di ricerca.

Attributo Valori Predefinito A cosa serve
property_id (o property) ID della struttura 0 Solo le recensioni di questa struttura.
room_type_id (o room) ID della tipologia di camera 0 Solo le recensioni degli ospiti che hanno soggiornato in questa tipologia di camera.
limit Numero 5 Recensioni per pagina.
summary yes, no yes Il punteggio medio in alto.
bars yes, no no Punteggi per categoria (pulizia, comfort, posizione, personale, rapporto qualità-prezzo).
schema yes, no yes Aggiunge le recensioni più recenti ai dati schema.org della pagina. La valutazione complessiva è sempre inclusa.
empty Testo Vuoto Testo mostrato quando non ci sono ancora recensioni. Vuoto = niente.
[jetbookin_reviews limit="3" bars="yes" empty="Be the first to review your stay."]

[jetbookin_review] – modulo di recensione

Nessun attributo. Serve solo se vuoi che gli ospiti recensiscano su una pagina dedicata: inseriscilo lì e indica l’ID della pagina come ID della pagina recensioni in Prenotazioni → Recensioni. Altrimenti gli ospiti recensiscono sulla pagina di conferma della prenotazione. Il modulo si apre dal link firmato nell’e-mail di richiesta di recensione.

Pagine per le pulizie e per i proprietari Pro

  • [jetbookin_housekeeping] (modulo Pulizie): l’elenco giornaliero delle pulizie su smartphone, per gli utenti connessi con il ruolo Addetto alle pulizie e per i gestori delle prenotazioni. Agli altri viene chiesto di accedere oppure viene detto che non hanno accesso. Dopo l’accesso, gli addetti alle pulizie vengono mandati su questa pagina.
  • [jetbookin_owner] (modulo Proprietari e rendiconti): i rendiconti mensili e il calendario di occupazione di un proprietario, per gli utenti connessi con il ruolo Proprietario della struttura collegati a una struttura. Dopo l’accesso i proprietari vengono mandati qui invece che in wp-admin.

Nessuno dei due ha attributi. Entrambe le pagine vengono escluse automaticamente dalle cache delle pagine. Crea ciascuna come normale pagina di WordPress pubblicata.

Pagine delle camere senza page builder

Ogni tipologia di camera ha una propria pagina sul sito. Se non è costruita con Elementor, JetBookIn la trasforma da solo in una pagina camera completa: la galleria fotografica (un mosaico a partire da cinque foto), ospiti / letti / dimensione, il prezzo “a partire da”, la tua descrizione, i servizi, le condizioni e il riquadro di prenotazione – accanto ai dettagli sugli schermi larghi, sotto sugli smartphone.

Se il contenuto della camera contiene già uno shortcode [jetbookin_room_…], alla fine viene aggiunto solo il riquadro di prenotazione; se contiene [jetbookin_booking], non viene aggiunto nulla. Con Elementor, progetta nel Theme Builder un unico template singolo per le tipologie di camera e usa i widget della camera con — Tipologia di camera corrente —.

Widget Elementor

Nell’editor di Elementor cerca JetBookIn oppure apri la categoria JetBookIn nel pannello dei widget. Ogni widget genera esattamente lo stesso blocco del suo shortcode.

Il pannello dei widget di Elementor con la categoria JetBookIn aperta e tutti i widget JetBookIn
La categoria JetBookIn in Elementor.

Controlli del contenuto

Widget Shortcode Controlli del contenuto
Ricerca prenotazione jetbookin_search Pagina dei risultati, Layout (Barra orizzontale / Verticale), Testo dei pulsanti, Mostra i prezzi per notte
Risultati prenotazione jetbookin_results Mostra la barra di ricerca sopra i risultati
Box prenotazione camera jetbookin_booking Tipologia di camera (— Tipologia di camera corrente — per i template del Theme Builder), Mesi visualizzati (1–2), Dopo “Prenota” (Continua nella pagina di checkout / Prenota nel riquadro)
Calendario disponibilità jetbookin_calendar Tipologia di camera, Mesi visualizzati (1–3, predefinito 2), Mostra i prezzi per notte
Conferma prenotazione / Gestisci prenotazione jetbookin_confirmation Nessuno
Hero di ricerca jetbookin_search_hero Immagine di sfondo, Titolo (predefinito La Sua vacanza estiva inizia qui), Tag del titolo, Sottotitolo (predefinito Prenoti direttamente al miglior prezzo.), Pagina dei risultati, Testo dei pulsanti, Allineamento, Altezza minima (px, per dispositivo), Scurisci immagine (%)
Griglia / carosello camere jetbookin_rooms Layout, Struttura, Solo queste camere, Numero massimo di camere, Ordine (Ordine personalizzato / Prima il prezzo più basso / Nome), Colonne, Spaziatura, Proporzioni immagine; Contenuto della scheda: Tag del titolo, Ospiti, letti e dimensione, Descrizione breve, Servizi mostrati, Prezzo “a partire da”, Testo dei pulsanti
Galleria camera jetbookin_room_gallery Foto di (Tipologia di camera / Struttura), Tipologia di camera, Struttura, Layout (Mosaico / Griglia / Slider), Colonne, Spaziatura, Numero massimo di foto, Includi l’immagine in evidenza, Apri a schermo intero al clic
Servizi della camera jetbookin_room_amenities Tipologia di camera, Colonne, Spaziatura, Massimo (0 = tutti), Icone
Caratteristiche camera jetbookin_room_specs Tipologia di camera, Mostra (Ospiti / Letti / Dimensione), Layout (In linea / Elenco)
Prezzo camera a partire da jetbookin_room_price Tipologia di camera, Prima del prezzo, Dopo il prezzo, Nota breve
Condizioni e tariffe della camera jetbookin_room_policies Tipologia di camera, Orari di check-in / check-out, Piani tariffari (cancellazione, pagamento, pasti), Testo delle condizioni della struttura
Info struttura e mappa jetbookin_property_info Struttura, Mostra (Check-in, Check-out, Indirizzo, Telefono, E-mail, Numero di registrazione), Layout (Elenco / Griglia), Mappa, Altezza mappa (px)
Recensioni jetbookin_reviews Struttura, Tipologia di camera (— Tutte le camere / tipologia di camera corrente —), Recensioni per pagina, Punteggio medio, Punteggi per categoria, Recensioni recenti per i motori di ricerca, Testo quando non ci sono recensioni
Modulo recensione jetbookin_review Nessuno

Le colonne sono responsive: per impostazione predefinita 3 su desktop, 2 su tablet e 1 su smartphone, e puoi impostare ogni dispositivo separatamente.

Controlli di stile

Ogni widget JetBookIn ha una sezione Colori e forma nella scheda Stile:

  • Primario (pulsanti, selezione), Testo dei pulsanti, Sfondo, Testo, Bordi – colori;
  • Raggio degli angoli – da 0 a 24 px;
  • Tipografia – famiglia di caratteri, dimensione, peso e così via per l’intero widget.

Alcuni widget hanno controlli in più:

  • Griglia / carosello camere: Scheda (Sfondo, Ombra, Spaziatura interna), Titolo della camera e Prezzo (tipografia e colore).
  • Servizi della camera: Icone (Colore, Dimensione).
  • Prezzo camera a partire da: Prezzo (tipografia e colore).
  • Hero di ricerca: Titolo e Sottotitolo (tipografia e colore).
  • Recensioni: Titolo della recensione e Testo della recensione (tipografia e colore).

Suggerimento: imposta lo stesso colore Primario su tutti i widget di prenotazione della pagina. Il pulsante Completa la prenotazione che compare per le prenotazioni non pagate prende colori, angoli e carattere dal widget di prenotazione presente nella pagina.

Colori e stile

Tutti i blocchi JetBookIn leggono colori e forme da variabili CSS impostate sul contenitore .jbi-widget. I controlli di stile di Elementor impostano queste stesse variabili. Senza Elementor, impostale in Aspetto → Personalizza → CSS aggiuntivo o nel foglio di stile del tuo tema.

Variabile Predefinito Usata per
--jbi-primary #1c1a17 Pulsanti, date selezionate, icone
--jbi-on-primary #fff Testo sui pulsanti
--jbi-accent #5b3fd1 Accenti ed evidenziazioni
--jbi-surface #fff Sfondo di riquadri e schede
--jbi-surface-2 #f6f5f2 Sfondo secondario (pannelli, righe)
--jbi-text inherit Colore del testo (quello del tuo tema, per impostazione predefinita)
--jbi-muted #6b6f76 Testo secondario
--jbi-border #e4e2dd Bordi e linee
--jbi-good #1b7f4d Note positive, per es. la cancellazione gratuita
--jbi-bad #b3261e Errori e avvisi
--jbi-radius 10px Raggio degli angoli
--jbi-gap 24px Spazio tra schede ed elementi
--jbi-cols 3 Colonne delle griglie
--jbi-shadow Un’ombra morbida a due livelli Ombra delle schede

Le variabili sono definite su .jbi-widget stesso, quindi impostale con un selettore almeno altrettanto specifico, per esempio:

/* Pulsanti blu mare, angoli squadrati, ovunque */
body .jbi-widget {
	--jbi-primary: #0e5e6f;
	--jbi-on-primary: #ffffff;
	--jbi-radius: 4px;
}

/* Un riquadro di prenotazione scuro in una sola sezione */
.booking-dark .jbi-widget {
	--jbi-surface: #1f1d1a;
	--jbi-surface-2: #2a2723;
	--jbi-text: #f4f1ea;
	--jbi-muted: #b9b4aa;
	--jbi-border: #3a3631;
}

Impostare le variabili solo su body o :root non ha effetto, perché .jbi-widget imposta i propri valori predefiniti.

Siti multilingue (Polylang, WPML)

JetBookIn funziona con Polylang e WPML. Le traduzioni di una tipologia di camera o di una struttura sono la stessa camera: condividono disponibilità, prezzi, prenotazioni, galleria e immagine principale. Gli ospiti vedono tutto nella lingua della pagina su cui prenotano, e ricevono e-mail e pagina della prenotazione in quella lingua.

Cosa tradurre

  • Tipologie di camera e strutture: traducile con il tuo plugin multilingue (titolo, descrizione, riassunto). Nella traduzione di una struttura scrivi anche le sue istruzioni per il check-in in quella lingua.
  • La pagina di conferma della prenotazione e, se la usi, la pagina Prenota / checkout: crea una traduzione di ciascuna con lo stesso shortcode o widget. Nelle Impostazioni va solo l’ID dell’originale; JetBookIn manda gli ospiti alla traduzione nella loro lingua.
  • Le pagine dei termini e della privacy e la pagina delle recensioni: traducile allo stesso modo. Il checkout apre la versione nella lingua dell’ospite.
  • Pagine con ricerca, camere e recensioni: traducile come normali pagine; shortcode e widget restano gli stessi.

Se una pagina non ha traduzione, viene usato l’originale.

I nomi che scrivi nella dashboard

Nomi dei piani tariffari, extra (nome e descrizione), promozioni, costi personalizzati e coordinate per il bonifico vengono registrati come stringhe: in Polylang in Lingue → Traduzioni (gruppo JetBookIn), in WPML in String Translation (dominio JetBookIn). Piani tariffari, extra e promozioni hanno anche i campi In altre lingue proprio sotto il loro nome nella dashboard; i due punti restano allineati. Una traduzione vuota mostra l’originale.

E-mail

I testi delle e-mail si modificano per lingua in Impostazioni → E-mail, non con il plugin multilingue. Vedi E-mail → Un testo per ogni lingua.

Sviluppatori: REST API

Tutto ciò che fa la dashboard passa dalla REST API nel namespace jetbookin/v1, per es. https://example.com/wp-json/jetbookin/v1/availability/search. Gli endpoint per lo staff richiedono un utente connesso con la capability manage_jetbookin (amministratori e ruolo Gestore prenotazioni) – un cookie con un nonce REST, oppure una password per le applicazioni per app e altri server. Gli endpoint pubblici più usati (checkout, preventivi, azioni dell’ospite, recensioni) hanno un limite di richieste per client.

Principali endpoint pubblici

Metodo e percorso A cosa serve
GET /availability/search Tipologie di camera e tariffe libere per un soggiorno: check_in, check_out (YYYY-MM-DD), adults, children, facoltativi property_id, room_type_id.
GET /availability/calendar Disponibilità e prezzi giorno per giorno di una tipologia di camera: room_type_id, start, days (fino a 120, predefinito 62).
GET /availability/alternatives Date vicine quando il soggiorno scelto non è disponibile.
POST /availability/quote Prezzo in tempo reale di un soggiorno con extra.
POST /checkout Crea una prenotazione dai dati dell’ospite e dal soggiorno scelto, e avvia il pagamento.
GET /booking-status Stato di una prenotazione (ref + key).
GET /resume, POST /resume/cancel La prenotazione non completata di questo visitatore; annullarla.
POST /guest/lookup Trova una prenotazione con riferimento ed e-mail; restituisce il link alla pagina della prenotazione.
GET /guest/booking I dati della pagina della prenotazione dell’ospite (ref + key).
POST /guest/booking/pay, /cancel, /update, /verify, /resend, /proof, /card Azioni dell’ospite: pagare (o pagare una richiesta), cancellare, salvare orario di arrivo / richieste / dati del documento, confermare tramite link e-mail, inviare di nuovo quel link, caricare una ricevuta di bonifico (multipart), aggiungere una nuova carta di garanzia.
GET /reviews/published Recensioni pubblicate.
GET / POST /guest/review Il modulo di recensione di una prenotazione, e il suo invio.

Gli endpoint per lo staff comprendono /bookings (elenco, creazione, PUT /bookings/{id}, cancellazione, pagamenti, richieste di pagamento, messaggi), /calendar, /quote, /settings, /emails, /reviews e /ical/connections. I fornitori di pagamento chiamano le proprie route webhook nello stesso namespace.

Sviluppatori: hook

Tutti gli hook di JetBookIn iniziano con jbi/. Usali da un piccolo plugin o dal functions.php del tuo tema child.

Azioni

Azione Argomenti Quando si attiva
jbi/booking_created $booking È stata creata una prenotazione (qualsiasi origine, qualsiasi stato).
jbi/booking_confirmed $booking Una prenotazione è diventata confermata.
jbi/booking_awaiting_payment $booking Una prenotazione attende un bonifico.
jbi/booking_status_changed $booking, $old, $new Qualsiasi cambio di stato.
jbi/booking_cancelled $booking Una prenotazione è stata cancellata.
jbi/booking_modified $booking Sono cambiati date, camera od ospiti.
jbi/booking_deleted $booking È stata eliminata una prenotazione di prova.
jbi/payment_received $booking, $amount È stato completato un pagamento online.
jbi/balance_charge_failed $booking Un addebito automatico del saldo non è riuscito.
jbi/ari_changed $change (tipologia di camera, unità o piano tariffario, inizio, fine) Sono cambiate disponibilità, tariffe o restrizioni – l’hook per inviare le modifiche altrove.
jbi/review_submitted $review, $booking Un ospite ha lasciato una recensione.
jbi/review_moderated $review, $fields Una recensione è stata pubblicata, nascosta o ha ricevuto risposta.
jbi/housekeeping_changed $unit, $details È cambiato lo stato delle pulizie o la nota di un’unità.
jbi/document_issued $doc È stata emessa una ricevuta, una fattura o una nota di credito.
jbi/owner_paid $owner_id, $month, $fields Il rendiconto di un proprietario è stato segnato come pagato.
jbi/ical_conflict $connection, $events Un’importazione di calendario ha trovato un possibile overbooking.
jbi/ical_failing $connection, $message Un’importazione di calendario continua a non riuscire.
jbi/hourly, jbi/daily – Le attività orarie e giornaliere di JetBookIn.
jbi/loaded $plugin JetBookIn ha finito di caricarsi (per gli add-on).

Filtri

Filtro Predefinito Scopo
jbi/max_open_holds 1 Prenotazioni non pagate consentite per indirizzo e-mail.
jbi/max_open_holds_network 3 Prenotazioni non pagate consentite per rete.
jbi/max_rooms_public 4 Camere per prenotazione online.
jbi/max_rooms_per_booking 10 Camere per prenotazione, qualsiasi origine.
jbi/checkout_verify true Restituisci un WP_Error per rifiutare un checkout – il punto giusto per un CAPTCHA come Cloudflare Turnstile. Riceve la richiesta REST.
jbi/client_ip Impostazioni → Sistema → Indirizzo del visitatore L’IP del visitatore dietro un proxy o un CDN (lo usano i limiti di richieste e quelli sulle prenotazioni non pagate). Riceve l’indirizzo scelto con l’impostazione e $_SERVER.
jbi/rate_limit Per bucket Richieste consentite nella finestra del limite di un endpoint pubblico (riceve il limite e il nome del bucket, per es. checkout).
jbi/render/{name} L’HTML Modifica l’output di un blocco generato sul server: rooms, gallery, amenities, specs, price, policies, property, reviews, hero.
jbi/auto_room_page true Restituisci false per non creare le pagine camera complete; viene aggiunto solo il riquadro di prenotazione.
jbi/auto_booking_box true Restituisci false per non aggiungere nulla alle pagine delle tipologie di camera.
jbi/room_url Il link della camera Dove portano le schede delle camere (riceve l’ID della camera).
jbi/structured_data_enabled true nel front end Restituisci false se un plugin SEO genera già lo schema della tua struttura ricettiva.
jbi/structured_data Il grafo JSON-LD Modifica i dati schema.org.
jbi/structured_data_room_type Accommodation Tipo schema di una camera, per es. HotelRoom o Suite.
jbi/reviews/schema Parti delle recensioni Modifica lo schema delle recensioni di una struttura.
jbi/ical_export_summary Not available Il titolo degli eventi nei calendari esportati.
jbi/module_enabled L’impostazione Disattiva un modulo via codice. Non può attivare un modulo non incluso nella licenza.
// Consenti due prenotazioni non pagate per indirizzo e-mail.
add_filter( 'jbi/max_open_holds', fn() => 2 );

// Invia ogni prenotazione confermata a un altro sistema.
add_action( 'jbi/booking_confirmed', function ( array $booking ) {
	wp_remote_post( 'https://example.com/hook', [ 'body' => [ 'ref' => $booking['ref'] ] ] );
} );

// Per i motori di ricerca le camere sono camere d'hotel.
add_filter( 'jbi/structured_data_room_type', fn() => 'HotelRoom' );

Le e-mail di avviso fisse si possono sovrascrivere copiando admin-conflict.php, admin-sync-failing.php o admin-late-payment.php in yourtheme/jetbookin/emails/.

Sviluppatori: WP-CLI

Comando A cosa serve
wp jetbookin run-jobs [--limit=<n>] Esegue subito tutte le attività in scadenza: importazioni dei calendari, promemoria, addebiti del saldo, scadenze. --limit limita le azioni in coda elaborate (predefinito 100).
wp jetbookin sync [<connection-id>...] [--force] Importa subito i calendari delle piattaforme – tutti i link di importazione attivi, oppure quelli indicati. --force ignora la cache HTTP.
wp jetbookin status Mostra quando sono state eseguite l’ultima volta le attività orarie e giornaliere, se è configurato un cron sul server, le azioni in ritardo e i calendari che non funzionano.

Sui siti live è consigliato un vero cron sul server al posto del cron di WordPress attivato dai visitatori, per esempio ogni 5 minuti:

*/5 * * * * cd /path/to/wordpress && wp jetbookin run-jobs --quiet

Vedi Impostazioni avanzate per le attività in background.

Domande

Il riquadro di prenotazione non mostra nulla.

Fuori dalla pagina della tipologia di camera ha bisogno di room="ID" (in Elementor: scegli la Tipologia di camera). Controlla anche che la tipologia sia pubblicata e abbia delle tariffe.

La ricerca manda gli ospiti alla pagina sbagliata.

Imposta results_url nella ricerca (oppure Pagina dei risultati nel widget) sulla pagina con [jetbookin_results]. Senza, i risultati si aprono sotto il modulo.

I miei colori non cambiano.

Imposta le variabili su .jbi-widget (per esempio body .jbi-widget { … }), non solo su body o :root. Poi svuota la cache CSS o del plugin di ottimizzazione.

Posso usare gli shortcode in Gutenberg, Divi o Bricks?

Sì. Aggiungi un blocco Shortcode (o l’elemento shortcode del tuo builder) e incolla lo shortcode.

Mi serve una pagina di checkout separata?

No. Se ID della pagina di checkout è vuoto, il riquadro di prenotazione prosegue sulla pagina di conferma della prenotazione. Una pagina Prenota dedicata con i risultati è utile quando vuoi anche una pagina di ricerca.

Ho eliminato per errore la pagina Conferma della prenotazione.

Crea una pagina con [jetbookin_confirmation], pubblicala e inserisci il suo ID come ID della pagina di conferma prenotazione in Impostazioni → Generale. I link nelle e-mail inviate prima puntano ancora al vecchio indirizzo, quindi se serve invia di nuovo il link della prenotazione agli ospiti interessati.