How to show only one payment form, which was selected in booking form by visitor?

This instruction apply only to updates 8.6 or newer in Booking Calendar Business Small or higher versions.

You can use in the booking form at the Booking > Settings > Form page this shortcode for ability to select payment method that will be showing after booking process:

<p>Select payment method:<br/>
  [select payment-method "All payment methods@@" "Stripe@@stripe_v3" "PayPal@@paypal" "Authorize.Net@@authorizenet" "Sage Pay@@sage" "Bank Transfer@@bank_transfer" "Pay in Cash@@pay_cash" "iPay88@@ipay88" "iDEAL@@ideal"]
</p>

Of course, you can remove from the above shortcode, the payment systems, that you have not activated at the Booking > Settings > Payment page, and use only active payment forms, similar to this:

<p>Select payment method:<br/>
  [select payment-method "All payment methods@@" "Stripe@@stripe_v3" "PayPal@@paypal"]
</p>

P.S. This solution was suggested by "Dan Brown". Thank you.

How to add Booking Calendar in Gutenberg editor in Classic (old) way?

How to add Booking Calendar in Gutenberg editor in Classic (old) way?

  1. Click on "+" Plus button to add new block.
  2. Select Formatting section and click on "Classic" block, or simply enter "Classic" in Search field. New "Classic" block will be added to the page.
  3. Click on "Booking Calendar" icon in "Classic" toolbar.
  4. Configure Booking Calendar parameters in popup dialog and click Insert button. Publish / Save the page.

Add Booking Calendar in Gutenberg editor in Classic (old) way

Add Booking Calendar Blocks in Gutenberg editor in "native" mode.
(available since update 8.4 of Booking Calendar)

Configuration ability to View and Manage bookings by customers, who made the booking

Tutorial of configuration of ability to view and manage all previous bookings of user, at front-end side of your website. Visitors of your website, can view previous (own) bookings, by clicking on secret link in email, which is sending after booking created.

Important! Please note, if you open this page directly, you will see this warning "You do not set any parameters for booking editing". It's because system allow to open this page only from link(s) in email templates, which your website visitor had to received, after he/she made the booking (inside of that link will be specific parameter (secret HASH) for the identification of the booking).

Check more about such type of configuration here.

Arithmetic expressions for Advanced Costs

Its possible to use arithmetic expressions, including fields shortcodes and simple mathematics operations at the Booking > Resources > Advanced cost page.

Its useful, when you are having checkbox (or selectbox), and want to apply some additional cost depend from selected option in other selectbox or checkbox in booking form.


1) For example, you are having increase of booking cost depend from visitors selection ( in N times),
and also you need to add 50 USD for a breakfast per each visitor, if some checkbox is selected.
Example of configuration fields in the booking form at the Booking > Settings > Form page:

</p>
<p>Visitors:  [select visitors "1" "2" "3" "4" "5"]</p>
<p>Breakfast (+50 USD):  [checkbox breakfast ""]</p>
<p>

In this case you can configure at the Booking > Resources > Advanced cost page for visitors option:

[visitors]
1 = 100%  of total booking cost
2 = 200%  of total booking cost
3 = 300%  of total booking cost
4 = 400%  of total booking cost
5 = 500%  of total booking cost

And for breakfast selection you can define expressions like this:
( [visitors] * 50 )

where [visitors] its shortcode of field from the Booking > Settings > Form page in "Content of booking fields data" form.


2) Shortcodes, its the names of form fields, from the "Content of booking fields data" form in Booking > Settings > Form page.
Each such shortcode will be replaced to digital number relative to selected option or checkbox.

3) In case, if the options in selectboxes or checkboxes does not have numbers (but some strings), please DO NOT use such shortcodes!
For example, if you have shortcode like this in booking form:

[select visitors "1" "2" "3" "4"]

so then you can use [visitors] shortcode at the Booking > Resources > Advanced cost page.

But if you are having shortcode like this at the Booking > Settings > Form page:

[select visitors "Person 1" " Person 2" " Person 3" " Person 4"]

so then you CAN NOT use shortcode [visitors] in the Booking > Resources > Advanced cost page.

4) Tip. The value of each selected checkbox = 1 and value of not checked checkbox is 0.

5) Please note, you need to use parentheses ( and ) to separate each mathematical operation.

Please use instead of expression like this

5 - 3 * 2
this expression
( 5 - ( 3 * 2 ) )
otherwise, the result will be 4 instead of correct -1

Supporting since update 8.2 in Booking Calendar Business Medium or higher versions.

Adding additional costs of some additional charges of selection in select boxes or check boxes in booking form (tax, cleaning, breakfast, visitors selection, excursion, etc…)

Please note, this configuration is possible at the Business Medium or higher versions.

Description
If you are need to add the additional costs, like tax or some other additional charges (cleaning,breakfast, excursion...), or just increase the cost depend from the visitor number selection at the selectbox, which is depend from the selection of the selectboxes or checkboxes in the booking form, so then you can make this configuration in the Business Medium or higher versions.

Configuration
1) You can insert into the Booking form, at the Booking > Settings > Fields page some checkbox, like this:

Tax: [checkbox* my_tax ""]

If you are need to have this checkbox hidden and checked by default in this way:

<div style="display:none;">[checkbox my_cleaning default:on ""]</div>

If you are need to have this checkbox as required and checked by default so use it in this way:

Cleaning service: [checkbox* my_cleaning default:on ""]

For the selectbox, its can look like this:

Visitors [select visitors "1" "2" "3" "4"]

Please read more about the booking form fields configuration here

2) Then at the Booking > Resources > Advanced cost page at the advanced cost management section for the option my_tax or/and visitors, set some additional cost.

For example, for the tax 6% you need to set value 106% there.

Or if you want to add the fixed cost value, you can set this value to this "my_cleaning" option:

my_cleaning = 50

or for the visitors selections you can leave this configuration:

visitors:
1 = 100%
2 = 200%
3 = 300%
4 = 400%

etc....

Configuration different form fields, for the different week day (or day in season filters) selection in calendar

Description
Available in Booking Calendar Business Medium or higher versions.
This feature provide possibility to show the different form fields or any other HTML content in the booking form, depends from the selection of specific week day in calendar or different days, which assigned to the specific season filters.


Configuration
If you are not familiar with the booking form fields configuration, please read firstly about the booking form fields configuration here.

The general structure of the configuration condition rule are following:

[condition name="FILTER-NAME" type="FILTER-TYPE" value="VALUE"]
   CONTENT (any HTML or form fields shortcodes), showing if these condition is TRUE
[/condition]

Parameters:
name - its the unique name of the condition group, several conditions with different values. For example, if you want to have the specific HTML content for the different week days, you will be have the several conditions, with the same name but with different value parameters in conditions. Please check more about it, in the examples.
type - type of the condition. There are 2 types of the condition: "weekday" and "season". "weekday" - is mean that condition rule is based on the selected day of week value, like Monday, Tuesday, etc... . "season" - is mean that condition rule is based on the "season filter" name of selected date. In other words the condition is TRUE if the selected day is belong to some season filter in the Booking > Resources > Filters page.
value - value of the specific conditions. If the value is true, so then the content of the conditions is showing in the booking form. You can have the default value (empty - "", or like this - "*") for showing the content of this condition, if all other conditions is FALSE, or at initial stage, when the date in calendar is not selected yet.

Examples:
Week days conditions.

[condition name="weekday-condition" type="weekday" value="*"]
  Default:   [select rangetime  "10:00 - 11:00" "11:00 - 12:00" "12:00 - 13:00" "13:00 - 14:00" "14:00 - 15:00" "15:00 - 16:00" "16:00 - 17:00" "17:00 - 18:00"]
[/condition]
[condition name="weekday-condition" type="weekday" value="1,2"]
  Monday, Tuesday:    [select rangetime  "10:00 - 12:00" "12:00 - 14:00"]
[/condition]
[condition name="weekday-condition" type="weekday" value="3,4"]
  Wednesday, Thursday:  [select rangetime  "14:00 - 16:00" "16:00 - 18:00" "18:00 - 20:00"]
[/condition]
[condition name="weekday-condition" type="weekday" value="5,6,0"]
  Friday, Saturday, Sunday:  [select rangetime  "10:00 - 12:00" "12:00 - 14:00" "14:00 - 16:00" "16:00 - 18:00" "18:00 - 20:00"]
[/condition]

where values are mean following:
"*" - default value, if no dates are selected, or none of the exist condition is true.
0 - Sunday,
1 - Monday,
2 - Tuesday,
3 - Wednesday,
4 - Thursday,
5 - Friday,
6 - Saturday
You can use the several values, separated by comma.

Season filters conditions.

[condition name="season-times" type="season" value="*"]
  Default: [select rangetime "14:00 - 16:00" "16:00 - 18:00" "18:00 - 20:00"]
[/condition]
[condition name="season-times" type="season" value="High_season"]
  High season: [select rangetime  "10:00 - 12:00" "12:00 - 14:00" "14:00 - 16:00" "16:00 - 18:00" "18:00 - 20:00"]
[/condition]
[condition name="season-times" type="season" value="Low_season"]
  Low season: [select rangetime "12:00 - 14:00" "14:00 - 16:00"]
[/condition]

where
High_season - its a name of the some Season filter on the Booking > Resources > Filters page,
Low_season - its a name of the some Season filter on the Booking > Resources > Filters page
You can use only single season filter name in the one value.

Additional info.
Please note, if you will activate the "Multiple days" selection or "Range days" selection in the General Booking Settings page at calendar section, so all these conditions will be based on the "first" day of that selection in the calendar.

Configuration different time slots, for the different week days in calendar (or day in season filter(s))

Description
Available in Booking Calendar Business Medium or higher versions.
This feature provide possibility to use the different time slots selections in the booking form for the different week days or different days, which assigned to the specific season filters. So each week day (day of specific season filter) can have different time slots list.


Configuration
You can configure the time slots at the Booking > Settings > Fields page. If you are not familiar with the booking form fields configuration, please read firstly about the booking form fields configuration here.

The general structure of the configuration condition rule are following:

[condition name="FILTER-NAME" type="FILTER-TYPE" value="VALUE"]
   CONTENT (any HTML or form fields shortcodes), showing if these condition is TRUE
[/condition]

Parameters:
name - its the unique name of the condition group, several conditions with different values. For example, if you want to have the different time slots for the different week days, you will be have the several conditions, with the same name but with different value parameters in conditions. Please check more about it, in the examples.
type - type of the condition. There are 2 types of the condition: "weekday" and "season". "weekday" - is mean that condition rule is based on the selected day of week value, like Monday, Tuesday, etc... . "season" - is mean that condition rule is based on the "season filter" name of selected date. In other words the condition is TRUE if the selected day is belong to some season filter in the Booking > Resources > Filters page.
value - value of the specific conditions. If the value is true, so then the content of the conditions is showing in the booking form. You can have the default value (empty - "", or like this - "*") for showing the content of this condition, if all other conditions is FALSE, or at initial stage, when the date in calendar is not selected yet.

Examples:
Week days conditions.

[condition name="weekday-condition" type="weekday" value="*"]
  Default:   [select rangetime  "10:00 - 11:00" "11:00 - 12:00" "12:00 - 13:00" "13:00 - 14:00" "14:00 - 15:00" "15:00 - 16:00" "16:00 - 17:00" "17:00 - 18:00"]
[/condition]
[condition name="weekday-condition" type="weekday" value="1,2"]
  Monday, Tuesday:    [select rangetime  "10:00 - 12:00" "12:00 - 14:00"]
[/condition]
[condition name="weekday-condition" type="weekday" value="3,4"]
  Wednesday, Thursday:  [select rangetime  "14:00 - 16:00" "16:00 - 18:00" "18:00 - 20:00"]
[/condition]
[condition name="weekday-condition" type="weekday" value="5,6,0"]
  Friday, Saturday, Sunday:  [select rangetime  "10:00 - 12:00" "12:00 - 14:00" "14:00 - 16:00" "16:00 - 18:00" "18:00 - 20:00"]
[/condition]

where values are mean following:
"*" - default value, if no dates are selected, or none of the exist condition is true.
0 - Sunday,
1 - Monday,
2 - Tuesday,
3 - Wednesday,
4 - Thursday,
5 - Friday,
6 - Saturday
You can use the several values, separated by comma.

Season filters conditions.

[condition name="season-times" type="season" value="*"]
  Default: [select rangetime "14:00 - 16:00" "16:00 - 18:00" "18:00 - 20:00"]
[/condition]
[condition name="season-times" type="season" value="High_season"]
  High season: [select rangetime  "10:00 - 12:00" "12:00 - 14:00" "14:00 - 16:00" "16:00 - 18:00" "18:00 - 20:00"]
[/condition]
[condition name="season-times" type="season" value="Low_season"]
  Low season: [select rangetime "12:00 - 14:00" "14:00 - 16:00"]
[/condition]

where
High_season - its a name of the some Season filter on the Booking > Resources > Filters page,
Low_season - its a name of the some Season filter on the Booking > Resources > Filters page
You can use only single season filter name in the one value.

Additional info.
Please note, if you will activate the "Multiple days" selection or "Range days" selection in the General Booking Settings page at calendar section, so all these conditions will be based on the "first" day of that selection in the calendar.

How to activate the half booking days ?

It's possible at the Booking Calendar Business Small and Business Medium versions of Booking Calendar in update 4.1 or newer.

You can activate "Use check in/out time:" option at the General Booking Settings page.
Then in the sub-settings set the "Check in" time as 15:00 and "Check out" time as 10:00. (You can set the different times there, but be sure to set the "Check In" time older than "Check Out").
Save the settings page.

Now, your visitors will be able to use the same date as check in/out date for the different bookings, its mean if the some booking is finished on the specific date, other visitor can start the new booking on the same specific date.
The check in/out days in calendar will be marked as half booked (diagonal line) and not by clock icon as for the usual timeslots.

Please note, this option will apply globally to the all booking resources and will overwrite any time slots, if you will use them in the booking form.

If you are need to use just time slots in the booking form, so you are need to deactivate this option and configure the time slot selection at the Booking > Settings > Fields page. Please read more about the booking form fields configuration here.

Booking Form Fields customization

You can find it at the Booking > Settings > Form page (available in paid versions only).

Please use shortcode generator at the right side of the Booking > Settings > Form page for the fast and correct creation of booking form fields.

Booking Form Fields setting

Inside of this form, you can use the text, HTML tags and special short codes for the form fields.

General shortcode rule for fields insertion

[shortcode_type* field_name "value"]

shortcode_type - its a reserved term, for the definition type of booking field (like a text field or select box, etc). Please check the full list of these terms bellow.
Parameters:
* - this symbol means that this field is Required (can be skipped in shortcode)
field_name - field name, must be unique (can not be skipped), you can use any letter or "_"symbol.
"value" - default value of field (can be skipped)

In addition you can define the "ID" and CSS "CLASS" of HTML element, in such way:

[shortcode_type* field_name id:id-of-element class:class-name "value"]

where "id-of-element" - its ID of element, "class-name" - its CSS CLASS of element.

Shortcodes of form fields

[calendar] - calendar. Insert the booking availability calendar into the booking form.
[email] - email field, Example:

[email* my_email]
. This field is required and have to be inside of the each booking form customization.

[captcha] - CAPTCHA. Insert the captcha into the booking form. Please note, you are need to activate using of the captcha at the general booking form, also.
[text] - text field. Example:

[text firt_name "John"]

[select] - select field, Example:
[select my_slct "1" "2" "3"]

If you want to use the different option titles from the option values,
you can use the select box options in this format: Option-Title@@Option-Value
Example:
[select my_day_parts "Morning@@08:00 - 12:00" "Evening@@13:00 - 17:00" "Full day@@08:00 - 17:00"]

[checkbox] - checkbox field,
Example #1:

[checkbox my_radio ""]

Example #2:
[checkbox my_radio default:on ""]
- checked by default
Example #3:
[checkbox my_radio "TV" "Player"]
- several values
[textarea] - textarea field, Example:
[textarea my_details ""]

[country] - countries list field,
Example #1:
[country]
- default usage
Example #2:
[country "US"]
- country selected by default as "United States of America"
[submit] - submit button, Example:
[submit "Send"]

Time shortcodes (Business Small/Medium versions)
Entering the time using the text fields (you can enter the time only in 24 hour time format)
[starttime] - start time field. Example:

[starttime]
.
[endtime] - end time field. Example:
[endtime]
.
[time] - additional time field (as an additional property). Do not apply to the dividing day into sections. Example:
[time my_tm]

Selection of time from predefined time slot list.
[select rangetime] - start and end time field in one drop-down list If you have predefined times (start and end time), use this code:

[select rangetime "10:00 - 12:00" "12:00 - 14:00" "14:00 - 16:00" "16:00 - 18:00" "18:00 - 20:00" ]

[select durationtime] - duration time field. If you set already start time, you can set duration of time using this shortcode:
[select durationtime "00:30" "01:00" "01:30" "02:00" "02:30" "03:00" ]
. You do not require endtime.

[select starttime "12:00" "14:00"] - if you have already predefined check in time slots.
[select endtime "16:00" "20:00"] - if you have already predefined check out time slots.

(Business Medium/Large, MultiUser versions)

[cost_corrections] - enter direct cost at admin panel at page: "Add booking".
Example:

[cost_corrections]

Showing the cost in real time at booking form. (Business Medium/Large, MultiUser versions).
[cost_hint] - show cost hint for full booking in real time, depends from selection of days and form elements. Example:

The full cost for payment: [cost_hint]

[original_cost_hint] - show cost hint of original booking cost without additional costs for full booking in real time, depends only from days selection. Example:
The original cost for payment: [original_cost_hint]

[additional_cost_hint] - show cost hint of additional booking cost, which depends from selection of form elements. Example:
The additional cost for payment: [additional_cost_hint]

(Business Large, MultiUser versions)
[coupon] - coupon field, Example:

[coupon* my_coupon]

[lang=LOCALE] - start new translation section, where LOCALE - locale of translation

Use any other HTML tags (carefully).

Some other shortcodes available in new updates of Booking Calendar, as well.
Please use shortcode generator at the right side of the Booking > Settings > Form page for checking other available shortcodes.


"Content of booking fields data" form

Configuration of booking data showing in the booking listing page at "Booking Data" column and in the email templates, if used this shortcode - [content].

Use these shortcodes for customization:

[field_name] - inserting value of the specific booking form field from the above form for the specific booking.

Use any other HTML tags (carefully).