How to put JetBookIn on your website: every shortcode and Elementor widget with all its options, which page each belongs on, how to match your brand colours, how multilingual sites work, and – for developers – the REST API, hooks and WP-CLI commands.
The pages you need
A typical JetBookIn site has these pages. Every block can be placed with a shortcode (any theme or editor) or with the matching Elementor widget.
| Page | Put on it | Elementor widget |
|---|---|---|
| Home page | [jetbookin_search_hero] or [jetbookin_search], [jetbookin_rooms], [jetbookin_reviews] |
Search Hero, Booking Search, Rooms Grid / Carousel, Reviews |
| Book / search results (e.g. /book/) | [jetbookin_results] |
Booking Results |
| Each room type’s page | Built automatically (see Room pages), or [jetbookin_booking] plus the room shortcodes |
Room Booking Box, Room Gallery, Room Specs, Room Price From, Room Amenities, Room Policies & Rates |
| Booking confirmation | [jetbookin_confirmation] – created for you on activation |
Booking Confirmation / Manage Booking |
| Contact / location | [jetbookin_property_info] |
Property Info & Map |
| Review page (optional) | [jetbookin_review] |
Review Form |
| Housekeeping (optional, Pro) | [jetbookin_housekeeping] |
– |
| Owner page (optional, Pro) | [jetbookin_owner] |
– |
A setup for a small villa with three apartments can be as simple as: the home page with the Search Hero and the rooms grid, one page per apartment (built automatically), and the confirmation page. A 20-room hotel usually adds a Book page with the results, so the search on every page leads there.
Booking confirmation and checkout pages
Two settings in JetBookIn → Settings → General tell JetBookIn where guests go:
| Setting | Default | What it does |
|---|---|---|
| Booking confirmation page ID | The Booking confirmation page created on activation | The page with [jetbookin_confirmation] or the Booking Confirmation widget. Guests land here after paying, and every e-mail link to View your booking opens it. It is also where guests find their booking by reference and e-mail. |
| Checkout page ID | Empty | Where Reserve in a room’s booking box continues: a page with the Booking Results or Booking Confirmation widget, e.g. your Book page. Empty = the booking confirmation page. |
| Terms & conditions URL | Empty | If set, guests must accept the terms before paying. The page opens in a sheet over the checkout. |
The confirmation page shows, depending on how it is opened: the checkout for a stay chosen in a booking box; the guest’s booking (from a link with the booking reference and key); or the Find your booking form. You never need more than one such page per language. What guests can do there is described in The guest’s booking page.
To find a page’s ID, open it in Pages; the number after post= in the address bar is the ID.
Themes can adapt the page around the booking with two body classes: jbi-is-checkout while the guest is still booking, and jbi-is-booking once there is a booking to show – for example to hide a “Thank you” heading during checkout.

Booking shortcodes
These blocks are interactive: they load availability and prices live and need JavaScript (visitors without it see Please enable JavaScript to book online.). For yes/no attributes, anything other than no counts as yes.
[jetbookin_search] – search form
Dates and guests, then a search button. Without a results page the results open under the form.
| Attribute | Values | Default | What it does |
|---|---|---|---|
results_url |
A URL | Empty | Page with [jetbookin_results] to send the search to. Empty = results under the form. |
property |
Property ID | 0 (all) | Search only this property’s rooms. |
layout |
horizontal, vertical |
horizontal |
A bar across the page, or stacked fields for a sidebar. |
button |
Text | Search | Button label. |
prices |
yes, no |
yes |
Lowest nightly price under each day of the date picker. |
[jetbookin_search results_url="/book/" button="Check availability"]
[jetbookin_results] – search results and checkout
Lists the room types free for the chosen dates with their rates, lets the guest pick one or more rooms, and runs the checkout. If nothing is free it suggests other dates.
| Attribute | Values | Default | What it does |
|---|---|---|---|
property |
Property ID | 0 (all) | Only this property’s rooms. |
show_search |
yes, no |
yes |
Show the search bar above the results. |
[jetbookin_booking] – room booking box
Calendar, guests, rates and price for one room type. Reserve continues on the checkout page with the stay filled in.
| Attribute | Values | Default | What it does |
|---|---|---|---|
room |
Room type ID | The current room type page | Which room type. Required anywhere other than a room type’s own page. |
months |
1, 2 |
1 |
Months shown in the calendar. |
checkout |
page, inline |
page |
page continues on the checkout page (a full page for details and payment). inline keeps the whole booking inside the box. Without any checkout or confirmation page the box books inline. |
[jetbookin_booking room="42" months="2"]

[jetbookin_calendar] – availability calendar
| Attribute | Values | Default | What it does |
|---|---|---|---|
room |
Room type ID | The current room type page | Which room type. |
months |
1–3 |
2 |
Months shown. |
prices |
yes, no |
yes |
Nightly prices on the days. |
[jetbookin_confirmation] – booking confirmation / manage booking
No attributes. [jetbookin_manage] does exactly the same. Put it on one page only (per language) and set that page as the Booking confirmation page ID.
[jetbookin_search_hero] – full-width hero with search
| Attribute | Values | Default | What it does |
|---|---|---|---|
image |
Image URL | Empty | Background photo. |
overlay |
0–90 |
35 |
How much the photo is darkened, in %. |
heading |
Text | Empty | Main title. |
heading_tag |
h1, h2, div |
h1 |
HTML tag of the title. |
subheading |
Text | Empty | Line under the title. |
min_height |
Pixels (240 or more) | 560 |
Minimum height of the hero. |
align |
left, center |
center |
Text alignment. |
results_url |
A URL | Empty | Results page for the search (as in [jetbookin_search]). |
button |
Text | Check availability | Button label. |
[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/"]
Room and property shortcodes
These are rendered on the server (good for speed and search engines). Where an attribute takes a room type, leaving it out uses the room type whose page is being shown; property attributes fall back to the current property, the current room’s property, or your first property.
When a block has nothing to show (no photos, no amenities…), guests see nothing; logged-in staff and the Elementor editor see a hint saying what to fill in.
[jetbookin_rooms] – rooms grid or carousel
| Attribute | Values | Default | What it does |
|---|---|---|---|
property |
Property ID | 0 (all) | Only this property’s rooms. |
ids |
Comma-separated room type IDs | Empty (all) | Only these rooms, in this order. |
limit |
1–50 |
12 |
Maximum number of rooms. |
orderby |
menu_order, title, price |
menu_order |
Your custom order, by name, or lowest “from” price first. |
layout |
grid, carousel |
grid |
A grid, or a scrolling row with arrows. |
columns |
1–4 |
3 |
Cards per row (cards visible at once in a carousel). |
image_ratio |
e.g. 4/3, 3/2, 16/9, 1/1, 3/4 |
4/3 |
Shape of the card photo. |
show_specs |
yes, no |
yes |
Guests, beds and size. |
show_excerpt |
yes, no |
yes |
The room’s short description (excerpt). |
amenities |
Number | 4 |
How many amenities to show; 0 hides them. |
show_price |
yes, no |
yes |
The “from … / night” price. |
button |
Text (empty hides it) | View & book | Button label. |
heading_tag |
h2, h3, h4, div |
h3 |
HTML tag of the room names. |
[jetbookin_rooms layout="carousel" columns="3" orderby="price" amenities="0"]
[jetbookin_room_gallery]
| Attribute | Values | Default | What it does |
|---|---|---|---|
room |
Room type ID | Current room type | Whose photos. |
post |
Post ID | Empty | Show another post’s photos instead, e.g. the property’s. |
layout |
mosaic, grid, slider |
mosaic |
Mosaic is one large photo and four small, with Show all … photos when there are more than five. |
columns |
Number | 3 |
Columns for grid and slider. |
ratio |
e.g. 4/3 |
4/3 |
Photo shape in the grid. |
limit |
Number | 0 (all) |
Maximum photos. |
featured |
yes, no |
yes |
no shows only the gallery photos, e.g. when the featured image is an illustration. |
lightbox |
yes, no |
yes |
Open photos full screen on click. |
[jetbookin_room_amenities]
| Attribute | Values | Default | What it does |
|---|---|---|---|
room |
Room type ID | Current room type | Which room. |
columns |
1–4 |
3 |
Columns of the list. |
limit |
Number | 0 (all) |
Maximum amenities. |
icons |
yes, no |
yes |
Show an icon next to each. |
[jetbookin_room_specs]
| Attribute | Values | Default | What it does |
|---|---|---|---|
room |
Room type ID | Current room type | Which room. |
items |
Any of guests, beds, size, comma-separated |
guests,beds,size |
What to show, in this order. |
layout |
inline, list |
inline |
In one line, or one under the other. |
[jetbookin_room_price]
The lowest nightly price from your rates, e.g. from €95 / night.
| Attribute | Values | Default | What it does |
|---|---|---|---|
room |
Room type ID | Current room type | Which room. |
prefix |
Text | from | Before the price. |
suffix |
Text | / night | After the price. |
note |
Text | Empty | A small line under it, e.g. Best price when booking direct. |
[jetbookin_room_policies]
| Attribute | Values | Default | What it does |
|---|---|---|---|
room |
Room type ID | Current room type | Which room. |
times |
yes, no |
yes |
Check-in and check-out times. |
rates |
yes, no |
yes |
Each rate plan with its meals, cancellation and payment terms. |
text |
yes, no |
yes |
The property’s policies text. |
[jetbookin_property_info]
| Attribute | Values | Default | What it does |
|---|---|---|---|
property |
Property ID | Current / first property | Which property. |
items |
Any of checkin, checkout, address, phone, email, registry |
All six | What to show, in this order. Address opens Google Maps, phone and e-mail are links. |
layout |
list, grid |
list |
Stacked or in a grid. |
map |
yes, no |
yes |
An embedded Google map of the property’s coordinates or address. |
map_height |
Pixels (120 or more) | 280 |
Height of the map. |
Review shortcodes Pro
Both need the Guest reviews module; with it off they show nothing.
[jetbookin_reviews] – published reviews
The average score with its label (e.g. Excellent), review cards with your replies, a Show more button, and schema.org rating data for search engines.
| Attribute | Values | Default | What it does |
|---|---|---|---|
property_id (or property) |
Property ID | 0 | Only this property’s reviews. |
room_type_id (or room) |
Room type ID | 0 | Only reviews of guests who stayed in this room type. |
limit |
Number | 5 |
Reviews per page. |
summary |
yes, no |
yes |
The average score at the top. |
bars |
yes, no |
no |
Scores per category (cleanliness, comfort, location, staff, value). |
schema |
yes, no |
yes |
Add the latest reviews to the page’s schema.org data. The overall rating is always included. |
empty |
Text | Empty | Text shown when there are no reviews yet. Empty = nothing. |
[jetbookin_reviews limit="3" bars="yes" empty="Be the first to review your stay."]
[jetbookin_review] – review form
No attributes. Only needed if you want guests to review on a page of their own: put it there and enter the page’s ID as Review page ID in Bookings → Reviews. Otherwise guests review on the booking confirmation page. The form opens from the signed link in the review e-mail.
Housekeeping and owner pages Pro
[jetbookin_housekeeping](Housekeeping module): the daily cleaning list on a phone, for logged-in users with the Housekeeper role and booking managers. Others are asked to log in or told they have no access. Housekeepers are sent to this page after logging in.[jetbookin_owner](Owners & statements module): an owner’s monthly statements and occupancy calendar, for logged-in users with the Property Owner role linked to a property. Owners are sent here after logging in instead of wp-admin.
Neither has attributes. Both pages are kept out of page caches automatically. Create each as a normal, published WordPress page.
Room pages without a page builder
Each room type has its own page on your site. If it is not built with Elementor, JetBookIn turns it into a complete room page by itself: the photo gallery (a mosaic from five photos), guests / beds / size, the “from” price, your description, amenities, policies and the booking box – beside the details on wide screens, below them on phones.
If the room’s content already contains a [jetbookin_room_…] shortcode, only the booking box is added at the end; if it contains [jetbookin_booking], nothing is added. With Elementor, design a single template for room types in the Theme Builder and use the room widgets with — Current room type —.
Elementor widgets
In the Elementor editor, search for JetBookIn or open the JetBookIn category in the widget panel. Each widget renders exactly the same block as its shortcode.

Content controls
| Widget | Shortcode | Content controls |
|---|---|---|
| Booking Search | jetbookin_search |
Results page, Layout (Horizontal bar / Vertical), Button text, Show nightly prices |
| Booking Results | jetbookin_results |
Show search bar above results |
| Room Booking Box | jetbookin_booking |
Room type (— Current room type — for Theme Builder templates), Months shown (1–2), After “Reserve” (Continue on the checkout page / Book inside the box) |
| Availability Calendar | jetbookin_calendar |
Room type, Months shown (1–3, default 2), Show nightly prices |
| Booking Confirmation / Manage Booking | jetbookin_confirmation |
None |
| Search Hero | jetbookin_search_hero |
Background image, Heading (default Your summer escape starts here), Heading tag, Subheading (default Book directly for the best price.), Results page, Button text, Alignment, Minimum height (px, per device), Darken image (%) |
| Rooms Grid / Carousel | jetbookin_rooms |
Layout, Property, Only these rooms, Maximum rooms, Order (Custom order / Lowest price first / Name), Columns, Gap, Image ratio; Card content: Title tag, Guests, beds & size, Short description, Amenities shown, “From” price, Button text |
| Room Gallery | jetbookin_room_gallery |
Photos of (Room type / Property), Room type, Property, Layout (Mosaic / Grid / Slider), Columns, Gap, Maximum photos, Include the featured image, Open full screen on click |
| Room Amenities | jetbookin_room_amenities |
Room type, Columns, Gap, Maximum (0 = all), Icons |
| Room Specs | jetbookin_room_specs |
Room type, Show (Guests / Beds / Size), Layout (Inline / List) |
| Room Price From | jetbookin_room_price |
Room type, Before price, After price, Small note |
| Room Policies & Rates | jetbookin_room_policies |
Room type, Check-in / check-out times, Rate plans (cancellation, payment, meals), Property policies text |
| Property Info & Map | jetbookin_property_info |
Property, Show (Check-in, Check-out, Address, Phone, E-mail, Registration number), Layout (List / Grid), Map, Map height (px) |
| Reviews | jetbookin_reviews |
Property, Room type (— All rooms / current room type —), Reviews per page, Average score, Category scores, Recent reviews for search engines, Text when there are no reviews |
| Review Form | jetbookin_review |
None |
Columns are responsive: by default 3 on desktop, 2 on tablet and 1 on phones, and you can set each device separately.
Style controls
Every JetBookIn widget has a Colors & shape section in the Style tab:
- Primary (buttons, selection), Button text, Background, Text, Borders – colours;
- Corner radius – 0 to 24 px;
- Typography – font family, size, weight and so on for the whole widget.
Some widgets have more:
- Rooms Grid / Carousel: Card (Background, Shadow, Padding), Room title and Price (typography and colour).
- Room Amenities: Icons (Color, Size).
- Room Price From: Price (typography and colour).
- Search Hero: Heading and Subheading (typography and colour).
- Reviews: Review title and Review text (typography and colour).
Tip: set the same Primary colour on the booking widgets of the page. The Finish booking button that appears for unpaid bookings takes its colours, corners and font from the booking widget on the page.
Colours and styling
All JetBookIn blocks read their colours and shapes from CSS variables set on the .jbi-widget wrapper. The Elementor style controls set these same variables. Without Elementor, set them in Appearance → Customize → Additional CSS or your theme’s stylesheet.
| Variable | Default | Used for |
|---|---|---|
--jbi-primary |
#1c1a17 |
Buttons, selected dates, icons |
--jbi-on-primary |
#fff |
Text on buttons |
--jbi-accent |
#5b3fd1 |
Accents and highlights |
--jbi-surface |
#fff |
Background of boxes and cards |
--jbi-surface-2 |
#f6f5f2 |
Secondary background (panels, rows) |
--jbi-text |
inherit |
Text colour (your theme’s by default) |
--jbi-muted |
#6b6f76 |
Secondary text |
--jbi-border |
#e4e2dd |
Borders and lines |
--jbi-good |
#1b7f4d |
Positive notes, e.g. free cancellation |
--jbi-bad |
#b3261e |
Errors and warnings |
--jbi-radius |
10px |
Corner radius |
--jbi-gap |
24px |
Space between cards and items |
--jbi-cols |
3 |
Columns of grids |
--jbi-shadow |
A soft two-layer shadow | Card shadow |
The variables are defined on .jbi-widget itself, so set them with a selector at least as strong, for example:
/* Sea-blue buttons, square corners, everywhere */
body .jbi-widget {
--jbi-primary: #0e5e6f;
--jbi-on-primary: #ffffff;
--jbi-radius: 4px;
}
/* A dark booking box in one section only */
.booking-dark .jbi-widget {
--jbi-surface: #1f1d1a;
--jbi-surface-2: #2a2723;
--jbi-text: #f4f1ea;
--jbi-muted: #b9b4aa;
--jbi-border: #3a3631;
}
Setting the variables on body or :root alone has no effect, because .jbi-widget sets its own defaults.
Multilingual sites (Polylang, WPML)
JetBookIn works with Polylang and WPML. Translations of a room type or property are the same room: they share availability, prices, bookings, the gallery and the main image. Guests see everything in the language of the page they book on, and get their e-mails and booking page in that language.
What to translate
- Room types and properties: translate them with your multilingual plugin (title, description, excerpt). On a property’s translation you also write its check-in instructions in that language.
- The booking confirmation page and, if you use one, the Book / checkout page: create a translation of each with the same shortcode or widget. Only the original’s ID goes into Settings; JetBookIn sends guests to the translation in their language.
- Terms and privacy pages and the review page: translate them the same way. Checkout opens the version in the guest’s language.
- Pages with search, rooms and reviews: translate them as normal pages; the shortcodes and widgets stay the same.
If a page has no translation, the original is used.
Names you type in the dashboard
Rate plan names, extras (name and description), promotions, custom fees and the bank transfer details are registered as strings: in Polylang under Languages → Translations (group JetBookIn), in WPML under String Translation (domain JetBookIn). Rate plans, extras and promotions also have In other languages fields right under their name in the dashboard; both places stay in step. An empty translation shows the original.
E-mails
E-mail texts are edited per language in Settings → E-mails, not with the multilingual plugin. See E-mails → One text per language.
Developers: REST API
Everything the dashboard does goes through the REST API under the namespace jetbookin/v1, e.g. https://example.com/wp-json/jetbookin/v1/availability/search. Staff endpoints need a logged-in user with the manage_jetbookin capability (administrators and the Booking Manager role) – a cookie with a REST nonce, or an Application Password for apps and other servers. The busier public endpoints (checkout, quotes, guest actions, reviews) are rate-limited per client.
Main public endpoints
| Method and path | What it does |
|---|---|
GET /availability/search |
Free room types and rates for a stay: check_in, check_out (YYYY-MM-DD), adults, children, optional property_id, room_type_id. |
GET /availability/calendar |
Day-by-day availability and prices of a room type: room_type_id, start, days (up to 120, default 62). |
GET /availability/alternatives |
Nearby dates when the chosen stay is not available. |
POST /availability/quote |
Live price of a stay with extras. |
POST /checkout |
Creates a booking from the guest’s details and chosen stay, and starts the payment. |
GET /booking-status |
Status of a booking (ref + key). |
GET /resume, POST /resume/cancel |
This visitor’s unfinished booking; cancel it. |
POST /guest/lookup |
Find a booking by reference and e-mail; returns the link to the booking page. |
GET /guest/booking |
The guest’s booking page data (ref + key). |
POST /guest/booking/pay, /cancel, /update, /verify, /resend, /proof, /card |
Guest actions: pay (or pay a request), cancel, save arrival time / requests / ID details, confirm by e-mail link, resend that link, upload a transfer receipt (multipart), add a new guarantee card. |
GET /reviews/published |
Published reviews. |
GET / POST /guest/review |
The review form for a booking, and submitting it. |
Staff endpoints include /bookings (list, create, PUT /bookings/{id}, cancel, payments, payment requests, messages), /calendar, /quote, /settings, /emails, /reviews and /ical/connections. Payment providers call their own webhook routes in the same namespace.
Developers: hooks
All JetBookIn hooks start with jbi/. Use them from a small plugin or your child theme’s functions.php.
Actions
| Action | Arguments | Fires when |
|---|---|---|
jbi/booking_created |
$booking |
A booking was created (any source, any status). |
jbi/booking_confirmed |
$booking |
A booking became confirmed. |
jbi/booking_awaiting_payment |
$booking |
A booking waits for a bank transfer. |
jbi/booking_status_changed |
$booking, $old, $new |
Any status change. |
jbi/booking_cancelled |
$booking |
A booking was cancelled. |
jbi/booking_modified |
$booking |
Dates, room or guests changed. |
jbi/booking_deleted |
$booking |
A test booking was deleted. |
jbi/payment_received |
$booking, $amount |
An online payment was completed. |
jbi/balance_charge_failed |
$booking |
An automatic balance charge failed. |
jbi/ari_changed |
$change (room type, unit or rate plan, start, end) |
Availability, rates or restrictions changed – the hook to push changes elsewhere. |
jbi/review_submitted |
$review, $booking |
A guest left a review. |
jbi/review_moderated |
$review, $fields |
A review was published, hidden or replied to. |
jbi/housekeeping_changed |
$unit, $details |
A unit’s housekeeping status or note changed. |
jbi/document_issued |
$doc |
A receipt, invoice or credit note was issued. |
jbi/owner_paid |
$owner_id, $month, $fields |
An owner statement was marked as paid. |
jbi/ical_conflict |
$connection, $events |
A calendar import found a possible double booking. |
jbi/ical_failing |
$connection, $message |
A calendar import keeps failing. |
jbi/hourly, jbi/daily |
– | JetBookIn’s own hourly and daily jobs. |
jbi/loaded |
$plugin |
JetBookIn finished loading (for add-ons). |
Filters
| Filter | Default | Purpose |
|---|---|---|
jbi/max_open_holds |
1 | Unpaid bookings allowed per e-mail address. |
jbi/max_open_holds_network |
3 | Unpaid bookings allowed per network. |
jbi/max_rooms_public |
4 | Rooms per online booking. |
jbi/max_rooms_per_booking |
10 | Rooms per booking, any source. |
jbi/checkout_verify |
true |
Return a WP_Error to refuse a checkout – the place for a CAPTCHA such as Cloudflare Turnstile. Receives the REST request. |
jbi/client_ip |
Settings → System → Visitor address | The visitor’s IP behind a proxy or CDN (rate limits and unpaid-booking limits use it). Receives the address chosen by the setting and $_SERVER. |
jbi/rate_limit |
Per bucket | Requests allowed in the rate-limit window of a public endpoint (receives the limit and the bucket name, e.g. checkout). |
jbi/render/{name} |
The HTML | Change the output of a server-rendered block: rooms, gallery, amenities, specs, price, policies, property, reviews, hero. |
jbi/auto_room_page |
true |
Return false to stop building full room pages; only the booking box is added. |
jbi/auto_booking_box |
true |
Return false to add nothing to room type pages. |
jbi/room_url |
The room’s link | Where room cards link to (receives the room ID). |
jbi/structured_data_enabled |
true on the front end |
Return false if an SEO plugin already outputs your lodging schema. |
jbi/structured_data |
The JSON-LD graph | Change the schema.org data. |
jbi/structured_data_room_type |
Accommodation |
Schema type of a room, e.g. HotelRoom or Suite. |
jbi/reviews/schema |
Review parts | Change the review schema of a property. |
jbi/ical_export_summary |
Not available | The event title in your exported calendars. |
jbi/module_enabled |
The setting | Switch a module off in code. It cannot switch on a module the licence does not include. |
// Allow two unpaid bookings per e-mail address.
add_filter( 'jbi/max_open_holds', fn() => 2 );
// Post every confirmed booking to another system.
add_action( 'jbi/booking_confirmed', function ( array $booking ) {
wp_remote_post( 'https://example.com/hook', [ 'body' => [ 'ref' => $booking['ref'] ] ] );
} );
// Rooms are hotel rooms for search engines.
add_filter( 'jbi/structured_data_room_type', fn() => 'HotelRoom' );
The fixed alert e-mails can be overridden by copying admin-conflict.php, admin-sync-failing.php or admin-late-payment.php into yourtheme/jetbookin/emails/.
Developers: WP-CLI
| Command | What it does |
|---|---|
wp jetbookin run-jobs [--limit=<n>] |
Runs every due job now: calendar imports, reminders, balance charges, expiries. --limit caps the queued actions processed (default 100). |
wp jetbookin sync [<connection-id>...] [--force] |
Imports platform calendars now – all active import links, or the ones given. --force ignores HTTP caching. |
wp jetbookin status |
Shows when the hourly and daily jobs last ran, whether a server cron is set up, overdue actions and failing calendars. |
On live sites a real server cron is recommended instead of WordPress’s visitor-triggered cron, for example every 5 minutes:
*/5 * * * * cd /path/to/wordpress && wp jetbookin run-jobs --quiet
See Advanced settings for background jobs.
Questions
The booking box shows nothing.
Outside a room type’s own page it needs room="ID" (in Elementor: choose the Room type). Also check that the room type is published and has rates.
Search sends guests to the wrong page.
Set results_url on the search (or Results page in the widget) to the page with [jetbookin_results]. Without it, results open under the form.
My colours don’t change.
Set the variables on .jbi-widget (for example body .jbi-widget { … }), not only on body or :root. Clear any CSS cache or optimisation plugin afterwards.
Can I use the shortcodes in Gutenberg, Divi or Bricks?
Yes. Add a Shortcode block (or your builder’s shortcode element) and paste the shortcode.
Do I need a separate checkout page?
No. If Checkout page ID is empty, the booking box continues on the booking confirmation page. A dedicated Book page with the results is useful when you also want a search page.
I deleted the Booking confirmation page by mistake.
Create a page with [jetbookin_confirmation], publish it, and enter its ID as Booking confirmation page ID in Settings → General. Links in e-mails sent before still point to the old address, so send affected guests their booking link again if needed.