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.

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"]

[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.

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.
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.