This FAQ explains a set of additional Booking Calendar shortcodes available in Advanced Mode
(CF7‑style syntax). These include the [country]
dropdown, multi‑language form
sections, admin‑only cost correction, coupon fields, step timelines, email verification, and numeric‑only
validation.
1) [country]
— Country selection dropdown
Purpose: Displays a dropdown list of countries for the visitor to select from.
Syntax: [country]
Parameters:
"CC"
(optional) — 2‑letter ISO country code to set as the default selected country.
Examples:
[country "US"]
“United States” selected by default. [country "FR"]
→ “France” selected by default.
Behavior:
- Country list comes from
../wp-plugins/booking/languages/wpdev-country-list.php
— can be customized there. - Shows all countries in a standard dropdown.
- Only one
[country]
field can be used in the form. - If no code is specified, the first country in the list will be selected by default.
- Field name is fixed — cannot be renamed.
Example in form layout:
<r> <c><l>Country:</l><br>[country "US"]</c></r>
Example in email template: Country: [country]
2) [lang=LOCALE]
— Multi‑language form sections
Purpose: Starts a new translation block in a specific language. Everything after [lang=LOCALE]
until the next [lang=...]
tag (or
end of form) will only be shown when the booking form is displayed in that locale.
Note: LOCALE format is language_COUNTRY
, e.g., fr_FR
, es_ES
.
Example: English + French form
[calendar]
<p>First Name (required): [text* name] </p>
<p>Last Name (required): [text* secondname] </p>
<p>Email (required): [email* email] </p>
<p>Visitors: [selectbox visitors "1" "2" "3" "4"]</p>
<p>Details: [textarea details] </p>
<p>[submit "Send"]</p>
[lang=fr_FR]
[calendar]
<p>Prénom (obligatoire): [text* name] </p>
<p>Deuxième prénom (requis): [text* secondname] </p>
<p>Email (obligatoire): [email* email] </p>
<p>Visiteurs : [selectbox visitors "1" "2" "3" "4"]</p>
<p>Détails : [textarea details] </p>
<p>[submit "Envoyer"]</p>
3) [cost_corrections]
— Admin cost correction
Purpose: Field visible only in Admin Panel on the “Add booking” page. Allows the admin
to adjust the booking cost before saving.
Example: [cost_corrections]
4) [coupon discount]
— Coupon input
Purpose: Allows visitors to enter a coupon code. If a valid coupon is configured, the discount
is applied to the booking cost.
Example: [coupon discount]
5) [steps_timline]
— Multi‑step progress indicator
Purpose: Displays a step progress bar for multi‑step booking forms.
Parameters:
steps_count="3"
— total number of stepsactive_step="1"
— the current stepcolor="#619d40"
— (optional) hex color for active step
Example:
[steps_timline steps_count="3" active_step="1" color="#619d40"]
6) Email verification field
Purpose: To add a “confirm email” field, use a CSS class starting with same_as_
followed by the name of your primary email field.
Example:
[email* other_verify_email class:same_as_email]
This ensures that the confirmation field value matches the original email field.
7) Digit‑only text field validation
Purpose: Force a text field to accept only digits, with optional exact length.
Classes:
class:validate_as_digit
— any number of digitsclass:validate_digit_N
— exactly N digits
Examples:
[text* dig_field class:validate_as_digit]
[text* phone class:validate_digit_9]
[text* zip class:validate_digit_5]
Best practices
- Use
[lang=LOCALE]
blocks to provide fully translated forms without
duplicating separate forms. - Reserve
[cost_corrections]
for admin forms only — it will be hidden on
the frontend. - Keep
[steps_timline]
consistent across all steps for a smoother UX. - Always test coupon logic with
[coupon discount]
before going live. - For email verification and digit validation, double‑check your field names to ensure rules apply
correctly. - For
[country]
, specify the default ISO code for better UX (e.g.,[country "US"]
).