Other Useful Booking Form Shortcodes

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.

Contents

  1. [country] — Country selection dropdown
  2. [lang=LOCALE] — Multi‑language form sections
  3. [cost_corrections] — Admin cost
    correction
  4. [coupon discount] — Coupon input
  5. [steps_timline] — Multi‑step progress indicator
  6. Email verification field
  7. Digit‑only text field 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]

You can use this shortcode only once in the form.

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 steps
  • active_step="1" — the current step
  • color="#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 digits
  • class: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"]).