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

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

Translation of the wordpress plugin.

Please follow to these steps for making translation of the wordpress plugin. In our case we are explain how to make it for the Booking Calendar plugin.
1) Before making translation of wordpress plugin, you need to have POEdit application. You can download it from here. Its completely free. Please install this application.
2) Now please download the Booking Calendar plugin. You can download it from the WordPress directory, from here.
Please extract the archive of the Booking Calendar plugin. Inside of the Booking Calendar plugin folder you can find this folder: "languages". Its folder, where are list of all available translations of the plugin (let say the path to this folder is "../booking/languages/" ).
3) Now start the POEdit application. Inside of the menu select File > "New catalog from from POT file", and select the wpdev-booking.pot file inside of our "../booking/languages/" folder, where you are extracted the booking calendar.
4) Type the description of your translation in the new popup configuration dialog.
5) Now in the "Save as" dialog, please type the name of the new translation file, in format: "wpdev-booking-LOCALE.po", where LOCALE - its locale of your new translation. In other words, the name of file consist from 2 parts: 1st part its filename of the plugin (in our situation its "wpdev-booking"), 2nd part its the locale (for translation in Spanish language "es_ES"). For example for the German translation, you will have the name of file like this: "wpdev-booking-de_DE.po". Save this file to the "../booking/languages/" folder.
6) Now please make the translation of the each term in the "Translation" field. If you find in translation “%s” symbol you shoud leave it at the same place as at original translation line, its system variables. Please be sure that you are unchecked the "Fuzzy" button at the toolbar (or at the Edit menu), otherwise the translation will not apply to the plugin.
7) Save the file (Using the file menu File > Save). Inside of the "../booking/languages/" folder you will see your 2 new files with extensions "po" and "mo".
8) If you made new translation or update the exist translation, you can send this translation files (*.po, *.mo) to info @ wpbookingcalendar.com and we will add them to the next release of plugin. Thank you.

If you are made update of the exist translation,
inside of the step #3 instead of creation new file, select File > Open menu and select the specific PO file in the "../booking/languages/" folder.
Then follow this instructions from the point #6.

Booking Calendar Shortcodes

Note! Please be careful in configuration of Booking Calendar shortcode with quote symbols. Do not use non standard opening or closing quot symbols. Only standard like: ' The best way to type them from keyboard, and not copy/paste.

Booking Form

[booking type=1 form_type='standard' nummonths=1 startmonth='2014-01']

Parameters:
nummonths - number of the visible months in the calendar. If "nummonths" is omitted the calendar is show 1 visible month.
Available in Free and Paid versionsstartmonth - start month in the calendar after loading of the calendar with booking form. Format of value for this parameter is 'YYYY-MM'. If "startmonth" is omitted the calendar is start showing months from current month.
Available in Free and Paid versions

type - ID of the booking resource. You can check the ID of the each booking resources at the Booking > Resources page. If this parameter is omitted, default value = 1.
Available in Paid versions

form_type - name of the custom booking form. You can create the custom booking forms at the Booking > Settings > Fields page. If this parameter is omitted, default value is 'standard'.
Available in Business Medium / Large versions

agregate - possibility to show reserved days in one calendar from several booking resource. So its mean that one calendar can aggregate dates from several booking resource. Usage: agregate='2;4;5', where 2;4;5 – ID of booking resources. The ID of booking resources you can check at the Booking > Resources page.
Available in Paid versions

options – possibility to set calendar additional parameters: full calendar width (percentage or pixels), date cell height, number of months in one row and in Business Medium and higher versions the minimum or fixed number of days selection for the specific day of week or specific season.

Please note! This option is available since update 5.0
Description
Specify the full calendar width (one or several months in a row), the hight of date cell (so its possible to configure the height of entire calendar by that (just divide the entire calendar width to 7 and you will get approximate date cell height), the number of months in one row (its useful, if you want to show several months in several rows, for example 4 months in 2 rows or 6 months in 2 rows etc).

Configuration rules
Example 1:

options='{calendar months_num_in_row=2 width=568px cell_height=30px}'

Example 2:

options='{calendar months_num_in_row=3 width=100% cell_height=40px}'

The general structure of the configuration calendar parameter is following:

{calendar months_num_in_row="{NUMBER OF MONTHs IN ONE ROW}" width="{ENTIRE WIDTH OF CALENDAR IN px or %}" cell_height="HEIGHT of CALENDAR DATE CELL, only in px"}

Parameters:
calendar - name of the parameter. Its always the same in the version update 5.0 (Its required for the future extend functionality).
months_num_in_row - number of months on one row. Its can be any number.
width - the entire height of the calendar. This width can be in "px" (example: "400px") or in percentage (example "100%).
cell_height - height of calendar date cell. The height can be only in "px" (example "30px").


Please note! This option is available in Business Medium / Large, MultiUser versions since update 5.0

Description
Specify that during certain seasons (or days of week), the specific minimum number of days must be booked, for example: visitor can select only 3 days starting at Friday and Saturday, 4 days - Friday, 5 days - Monday, 7 days - Saturday, etc...
Important! Please note, this feature is working only, if you activated the "Range days" selection at the General Booking Settings page.

Configuration rules
Example 1:

options='{select-day condition="season" for="High season" value="7-14,20"},
{select-day condition="season" for="Low season" value="2-5"}'

Example 2:

options='{select-day condition="weekday" for="1" value="4"},
{select-day condition="weekday" for="5" value="3"},
{select-day condition="weekday" for="6" value="2,7"}'

The general structure of the configuration one condition rule are following:

{select-day condition="{season|weekday}" for="{Name of season filter|Number of week day}" value="Number of days selection"}, ...

Parameters:
select-day - name of the rule. Its always the same in the version update 5.0 (Its required for the future extend functionality).
condition - 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.
for - value of the specific conditions. If the condition is true, so then the number of specific days selection will possible in the calendar. If the condition is set as "weekday" so then "for" can have the following numbers: 0 - Sunday, 1 - Monday, 2 - Tuesday, 3 - Wednesday, 4 - Thursday, 5 - Friday, 6 - Saturday.
value - number of specific days selection in the calendar, which can be selected by visitors. It can be simple number or several days separated by comma (example: "7,14,21,28") or by dash (example:"3-5", its the same like this: "3,4,5") or combination (example:"3-5,7,14", its the same like this: "3,4,5,7,14")


Examples:
Week days conditions.

[booking type=1 form_type='standard' nummonths=2 options='{select-day condition="weekday" for="1" value="4"},
{select-day condition="weekday" for="5" value="3"},
{select-day condition="weekday" for="6" value="2,7"}']

where values of the "for" parameter are mean following:
0 - Sunday,
1 - Monday,
2 - Tuesday,
3 - Wednesday,
4 - Thursday,
5 - Friday,
6 - Saturday
You can use only one number of the specific week day.

Its mean that on Monday is possible to select only 4 days,
on Friday is possible to select only 3 days,
on Saturday is possible to select only 2 or 7 days.

Season filters conditions.

[booking type=1 form_type='standard' nummonths=2 options='{select-day condition="season" for="High season" value="7-14,20"},
{select-day condition="season" for="Low season" value="2-5"}']

where values of the "for" parameter are mean following:
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.

Its mean that during High season is possible to select only 7, 8, 9, 10, 11, 12, 13, 14 or 20 days
and during the Low season is possible to select only 2, 3, 4 or 5 days

Setting the specific start day(s) selection (day(s) of week) for the specific Season Filters. (available since 5.0.1 update)
Description.
This configuration will allow to set the specific start day(s) selection (day(s) of week) for the specific Season Filters.
For example, in high season, you can allow start day selection only at Friday in the Low season (or any other days) to start day selection from any weekday.

1) I can suggest that you are activated the range days selection using 2 mouse clicks for the specific day(s) of week. For example for Friday.

2) So then inside of the page, where you are inserted the booking shortcode, you are need to have something like this, to allow any start day selection for the "Low season" days:

[booking type=1 form_type='standard' nummonths=6 options='{start-day condition="season" for="Low season" value="0,1,2,3,4,5,6"}']

Configuration of the Options parameter:
start-day – name of the rule. Its always the same in the version update.
condition – type of the condition. For this rule is available only 1 type of the condition: “season”.
season – is mean that condition rule is based on the EXACT “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.
for – value of the specific condition – EXACT Name of Season Filter.
value – day(s) of week, where we can start selection for the specific season.
It can be simple number or several days separated by comma.
0 – Sunday,
1 – Monday,
2 – Tuesday,
3 – Wednesday,
4 – Thursday,
5 – Friday,
6 – Saturday


Additional info.
Please note, all these conditions are based on the "first" day of range days selection in the calendar.

Transfer custom value to booking form
In update 6.1 or newer you can use new condition variable: options='{parameter name="my_param" value="value"}'
This option parameter can transfer custom value from this booking form shortcode into the content of booking form.

Example of shortcode usage:
[booking type=1 form_type='standard' nummonths=3 options='{parameter name="my_param" value="value"},{parameter name="other_param" value="other value"}']

Example of booking form customization:
[text some_field_name "my_param"] and [text other_field_name "other_param"]
Important. Parameter name must be unique and exist only once in booking form.

Available in Business Medium / Large, MultiUser versions since update 5.0

Availability calendar

[bookingcalendar type=1 nummonths=1 startmonth='2014-01']

Parameters:
nummonths - number of the visible months in the calendar. If "nummonths" is omitted the calendar is show 1 visible month.
Available in Free and Paid versionsstartmonth - start month in the calendar after loading of the calendar with booking form. Format of value for this parameter is 'YYYY-MM'. If "startmonth" is omitted the calendar is start showing months from current month.
Available in Free and Paid versions

type - ID of the booking resource. You can check the ID of the each booking resources at the Booking > Resources page. If this parameter is omitted, default value = 1.
Available in Paid versions

agregate - possibility to show reserved days in one calendar from several booking resource. So its mean that one calendar can aggregate dates from several booking resource. Usage: agregate='2;4;5', where 2;4;5 – ID of booking resources.
Available in Paid versions

Selection of booking resource (form) using select box.

Available in Paid versions
You can check example of using this shortcode at this page.

[bookingselect label='Please select the resource:' form_type='standard' nummonths=1 type='17,16,15']

Parameters:

type - ID of the booking resources, separated by comma. You can check the ID of the each booking resources at the Booking > Resources page. This parameter is required.

selected_type - ID of booking resource, which selected by default in this selectbox.
For example:

[bookingselect type='17,16,15' selected_type='15' first_option_title='' label='']

nummonths - number of the visible months in the calendar. If "nummonths" is omitted the calendar is show 1 visible month.

form_type - name of the custom booking form. You can create the custom booking forms at the Booking > Settings > Fields page. If this parameter is omitted, default value is 'standard'.

label - text of label for the select box. If this parameter is omitted, default value is ''.

first_option_title - first option in dropdown list. If you want to skip this option, then leave it empty like this: first_option_title=''. This parameter available only since update 5.4 of Booking Calendar.

Available in Paid versions

Showing only Form without calendar for the specific date (events booking)

Available in Business Large / MultiUser versions

[bookingform type=1 form_type='standard' selected_dates='25.11.2014']

Parameters:

type - ID of the booking resource. You can check the ID of the each booking resources at the Booking > Resources page. If this parameter is omitted, default value = 1.

form_type - name of the custom booking form. You can create the custom booking forms at the Booking > Settings > Fields page. If this parameter is omitted, default value is 'standard'.

selected_dates - date of booking. Format of value for this parameter is 'DD-MM-YYYY'. This parameter can not be skipped.

System shortcode for possibility to edit/cancel exist booking by visitors or make payment

Available in Paid versions

[bookingedit]

Please read more about this shortcode here.

Search Availability Form

Available in Business Large / MultiUser versions
You can check example of using this shortcode at this page.

[bookingsearch searchresults='http://mysite.com/search-results/' noresultstitle='Nothing Found' searchresultstitle='Search results:']

Parameters:

searchresults - URL of the page, where search results are showing. You must insert into the content of that page this shortcode: [bookingsearchresults]. If this parameter is omitted, the search results is showing at the same page, just below the search form (in this case its will be Ajax request).

searchresultstitle - header of the search results. If this parameter is omitted, default value is ''.

noresultstitle - showing text, if nothing found. If this parameter is omitted, default value is ''.

users - limit the search results based on the availability per user. Showing availability in search results only for the specific users. Example of usage search form shortcode: [bookingsearch users="1,2"] ; where 1,2 – its a ID list of users.
Available in MultiUser version

Search Results

Available in Business Large / MultiUser versions

[bookingsearchresults]

Page where the search results is showing after the search form is submitting. Please check the description about this shortcode: [bookingsearch]

Show info about booking resource

Available in Paid versions

Please note, this shortcode available only in the version update 5.4 or newer.

[bookingresource type=1 show='title']

Parameters:
type - ID of the booking resource. You can check the ID of the each booking resources at the Booking > Resources page. If this parameter is omitted, default value = 1.

show - type of info to show.

Possible values:
title - show title of booking resources.
cost - show default cost of booking resource. Its can be cost per day, per night, per hour or fixed cost depend from your settings. Available only in Business Small/Medium/Large, MultiUser versions
capacity - show capacity of booking resource - number of "child" resources. Available only in Business Large, MultiUser versions. Since update 5.4.5

If this parameter is omitted, default value = 'title'

Booking Form Fields customization

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

Fields setting

booking-form2 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 dropdown 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 requre 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 che k out time slots. 

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

<div style="text-align:left;line-height:28px;">
<p>The full cost for payment: [cost_hint]</p>
</div>
<p>
 
[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:
<div style="text-align:left;line-height:28px;">
<p>The original cost for payment: [original_cost_hint]</p>
</div>
<p>

[additional_cost_hint] - show cost hint of additional booking cost, ehich depends from selection of form elements. Example:
<div style="text-align:left;line-height:28px;">
<p>The additional cost for payment: [additional_cost_hint]</p>
</div>
<p>
 

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

[coupon* my_coupon]
 

[lang=LOCALE] - start new translation section, where LOCALE - locale of translation
Example #1:

[lang=fr_FR]
- start French translation section
Example #2: "
Thank you for your booking.[lang=fr_FR]Je vous remercie de votre reservation."
- English and French translation of some message

Use any other HTML tags (carefully). Example:

 - inserting new line.


Content of Booking Fields

content-form2 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). Example:

 - inserting new line.

[lang=LOCALE] - start new translation section, where LOCALE - locale of translation
Example #1:

[lang=fr_FR]
- start French tranlation section
Example #2:
"Thank you for your booking.[lang=fr_FR]Je vous remercie de votre reservation."
- English and French translation of some message

Booking Resources Configuration

Booking admin menu page path: Booking > Resources  (available in paid versions only).

Booking Calendar Personal
Booking resources - it's your objects (like rooms, cars or tables) or services, what can be booked by visitors of your sites. You can add/delete/modify the booking resources at the Booking > Resource page. 
You can define the calendar (booking form) to the specific booking resources, at the popup configuration dialog, during inserting the booking form into post or page. 

Terms: Personal, Business Small, Business Medium, Business Large, MultiUser, resource configuration

Booking Calendar Business Small / Medium

In additional, at the Resource menu page at these version, you can configure the cost per booking resource. You can set the cost at the specific field near each specific Booking Resource. At the same page (as at the general booking settings page, also) you can set the settings of cost calculation: per day, per night, per hour and fixed  cost.

Cost per day - is mean that the cost, which you are set near your booking resource will be apply for the each selected day in calendar, when the visitor will make the reservation. 
Cost per night - is mean that the cost, which you are set near your booking resource will be apply for the each night (the number of nights is equal number of days selected in calendar minus one day), when the visitor will make the reservation. If the visitor is select only one day, it's still mean one night selections. If visitor select 2 days, it's also mean the one night selection. If visitor select 3 days, it's mean 2 nights selections. If visitor select N days, it's mean N-1  nights selections, etc...

Cost per hour - is mean that the cost, which you are set near your booking resource will be apply for the each hour, if you are use the time selections/entering in booking form, when the visitor will make the reservation.  If the visitor select several days, so then one full day calculated as 24 full hours, first and last day will be check in/out days and cost will be calculated depending from the check in/out (start/end) times (based on the 24 hours in a day). 

Fixed cost - is mean that the cost, which you are set near your booking resource will be fixed and will not depend from number of days selections or time selections/entering in booking form, when the visitor will make the reservation.  

Terms: Business Small, Business Medium, Business Large, MultiUser, cost configuration, resource configuration

Booking Calendar Business Large

In additional, at the Resource menu page at this version, you can configure the capacity for the specific booking resource. Booking resource with specific capacity is mean, that the visitors at your site, can make several reservations per the same selected Full date(s) in the same calendar. In other words, the date(s) in a calendar (of specific booking resource with capacity high than one) will be available, until number of reservations per these date(s) is less then capacity of the booking resource. If the number of reservations for the specific dates will be equal to the capacity so then these date(s) become unavailable in the calendar at client side of site. 

It's useful, when you are have several objects or properties like rooms of the same type or seats somewhere or cars of the same model, or slots per some service, etc... and you do not want to create the separate calendars (booking resources) for the all these items, but use only one specific calendar, and have a available dates in a calendar, until the number of reservations is less the capacity. 

This concept is work only for the FULL dates and not a time slots. If you will use the time selection/entering in the booking form, it's will be recorded as data of booking into DB, but will not impact to the availability. For example: if you have booking resource with capacity = 3,  and 2 time slot selections in the booking form, so your visitors can make maximum 3 reservations per the same selected date in a calendar. And not the the 6 reservations (3*2=6) for the date. 

Settings of the capacity for the specific booking resource
The setting capacity for the specific resource is based on the parent / child booking resources concept. If you create during first time the booking resource (inside of the parent field you will set none resource), it's will be the "single resource" and capacity of this resource is 1. If you want to increase the capacity of the specific booking resources you are need to create several booking resources ("child" resources) and in the field of "parent resource" at the resource adding form you are need to specify the resource, what capacity you are want to increase. These new resources is called "child" resources, the resource, which you select in the "parent resource" field is called "parent resource". So single resource become parent resource, when you add one or several "child resource" to that resource. The capacity of the specific booking resource is equal to the number of child resources plus this specific resource itself (so the parent resource is also calculated in capacity). Please note, you can add during one operation, several booking resources (by selecting the number of booking resources at the add new booking resource form), it's mean that you can increase the capacity a the specific number,higher than one during one operation. 
Near each single or parent booking resource you can also set the "maximum number of visitors". This option is mean maximum number of visitors per the same single or "child" booking resources. For example you are have 5 single type rooms and 8 double type rooms, so then you can create the booking resource "Single room" with capacity 5 and maximum number of visitors as 1 (it's mean per room) and other resources "Double room" with capacity 8 and maximum number of visitors as 2 (it's mean 2 visitors per room) 

Advanced options about the reservations of booking resources with specific resources

What about situation, when you are need to decrease the capacity on a specific date, during reservation process, higher then one? In other words you are want to reserve the several slots (booking child resources) during one restating process. 
It's possible using the visitors selection select box in the booking form. So you are need to use this select box shortcode (only this, other shortcodes for this operation is not supported)  in the booking form customization page:

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

And at the General Booking Settings page at the "advanced settings" section, you are need to set checked this checkbox "Visitors number apply to capacity" (availability of the day (capacity) depends from number of selected visitors [visitors]).
You are also will have 2 sub radio button selections:
"1st  radio button option" - "Show at tooltip on calendar availability based on free booking resource items. 
Check maximum support of visitors at one booking resource with selected number of visitors from booking form"

"2nd radio button option" - "Show at tooltip on calendar availability based on sum  number of visitors, which can be at free booking resource items. 
Check maximum support of visitors at all booking resources with selected number of visitors from booking form"

Let describe the difference between these 2 radio subtions at the previous example: "we are have 5 single type rooms and 8 double type rooms - its mean we are have booking resource "Single room" with capacity 5 and maximum number of visitors as 1 and other resources "Double room" with capacity 8 and maximum number of visitors as 2". 

So if we are set selected 1st radio button sub-option, so then in the mouse over popover in calendars we will see for the "Single room" booking resource the availability as 5 (if no bookings for that date), and for the "Double room" booking resource the availability as 8 (if no bookings for that date). In other words the availability in this case is counting depends only from the free "child" resources.  If we try to make the bookings with visitor selections as 1 at select-box in the booking form, so then system will allow to make the bookings in the both resources (single and double room), and decrease the availability of those resources for that selected date(s) on 1. 
If we are try to make the bookings with visitor selections as 2 at select-box in the booking form, so then system will allow to make the booking only for the "Double room" and do not allow todo that for the "Single room". It's because we are have maximum visitors per resources for "Single room" as 1, and have selection in the select box as 2 visitors, according the "Double room" we are have the maximum number of visitors per resource 2, and have selection in the select box as 2 visitors, so here we are can make the bookings.  The availability in the "Double room" will decrease on 1 for that selected date(s) .
If we are select 3 visitors at the select box from the booking form, the system will not allow to make the bookings in the both resources, etc.

 If we are set selected 2nd radio button sub-option, so then in the mouse over popover in calendars we will see for the "Single room" booking resource the availability as 5 = 5 free resources * 1 visitor per resource (if no bookings for that date), and for the "Double room" booking resource the availability as 16 = 8 free resources * 2 visitors per resource (if no bookings for that date). In other words the availability in this case is counting depends from the free "child" resources and maximum number of visitors per resource.  
If we try to make the bookings with visitor selections as 1 at select-box in the booking form, so then system will allow to make the bookings in the both resources (single and double room), and decrease the availability of those resources for that selected date(s) on 1. 
If we are try to make the bookings with visitor selections as 2 at select-box in the booking form, so then system will allow to make the bookings in both resources, also.  But for the "Single room" its will reserve the 2 child sub resources (because we are have here maximum 1 visitor per resource) and for the "Double  room" its will reserve the 1 child sub resources (because we are have here maximum 2 visitor per resource) . The availability in the resources decrease on 2 for that selected date(s) .
If we are select 3 visitors at the select box from the booking form, the system will allow to make the bookings in the both resources. For the "Single room" its will reserve the 3 child sub resources (because we are have here maximum 1 visitor per resource) and for the "Double  room" its will reserve the 2 child sub resources (because we are have here maximum 2 visitor per resource, so we are have 2 visitors in one resource and 1 visitor in other child resource) . The availability in the resources decrease on 3 for that selected date(s) , etc...

Also at the same "Advanced settings" section we are have one more additional option:

"Disable bookings in different booking resources" - dissable booking, which can be stored in different booking resources. So if this checkbox is checked, the booking is allowed only, if all days of booking are at same booking resources, otherwise the error message will show.

Here is explanation in the examples, how is the capacity concept is working at the Business Large and MultiUser versions.

1) Firstly you are need to create the booking resource "test" at the Booking > Resources page.

2) Then you are need to create the 2 child resources (during creation of the child resource, you are need to set the parent field as "test" resource) : "test1" and "test2",

So you will have the booking resources structure like this:

test
    test1
    test2

Because you are have 2 child resources and parent resource "test", together it's generate the capacity of the parent resource "test", which is equal to 3 in our example.

3) Now, by default the maximum number of visitors, which is allowed per resource is 1. So we will change it to 2. It's mean that per each resource (apartment), can be maximum 2 visitors.

So we will have the structure like this:

test. | Max visitors = 2 | capacity = 3
    test1
    test2

In other words we are have 3 apartment, and each apartment can have maximum 2 visitors per apartment.

4) Now important options at the general booking settings page:


Set capacity based on number of visitors: BOX
Check this box if you want total availability (daily capacity) to depend on the number of selected visitors [visitors]
Add tooltip on calendar(s) to show availability based on the number of available booking resource items remaining for each day.
Be sure to match the maximum number of visitors for the one booking resource with the number of visitors specified on the booking form.: RADIO BUTTON
Display tooltip on calendar(s) to show availability based on total (fixed) number of visitors for the resource, which can be at free booking resource items.
Be sure to match the maximum number of visitors for all booking resources with the number of visitors specified on the booking form.: RADIO BUTTON

A) If you are do not activate the "Set capacity based on number of visitors" so then, during reservation process you will book only ONE available booking resource, do not depend from the any number of visitors selections in the "visitors" select box. So it's mean if you are select 1 or 2 or 5 visitors in the select box at the booking form, you will reserve only one booking resource (firstly its will be parent resource "test", during the next new (second) reservation it's will be child resource "test 1" and during third reservation you will reserve "test 2" booking resource.
So if the "Set capacity based on number of visitors" is not checked, the availability for the specific date will be 3 (based on capacity only) and during reservation process the selection number of visitors will not impact to the Availability and just will be saved as a any other field.

B) If you will set checked the "Set capacity based on number of visitors" option and activate first radio button in sub settings:

Add tooltip on calendar(s) to show availability based on the number of available booking resource items remaining for each day.
Be sure to match the maximum number of visitors for the one booking resource with the number of visitors specified on the booking form.:

so then the Availability in the mouse over tooltip will be based on the capacity of the booking resource. So it's mean that for the free dates the availability will be show as 3, as in our previous example.

But during reservation process, you can not select more than 2 visitors in the select box. Because each booking resource, is support only 2 visitors per resource.

In other words, during reservation process you can reserve only 1 booking resource during one reservation, but the system is also check that the number of visitors, which you are selected in the booking form have to be not more then maximum number of visitors, which you are set at the Booking > Resource page. The availability in mouse over tooltip will be based on the capacity and in out example will be show as 3

C) and now last variant if you are selected the bottom radios button option:

Display tooltip on calendar(s) to show availability based on total (fixed) number of visitors for the resource, which can be at free booking resource items.
Be sure to match the maximum number of visitors for all booking resources with the number of visitors specified on the booking form.

So it's mean that availability over the specific date will be based on the capacity and number of maximum visitors per resource. In our example it's will be show as 6 ( 3*2=6).
During reservation process the system can book several booking resources, it's will calculate the visitors, which you are select in the booking form for the each booking resource (parent or child) and number of visitors per this resource.

So for example if you are select 3 visitors in the booking form. It's will reserve 2 booking resources. Because first resource is support 2 visitors and second is support also 2 but we are have only 1 (3-2=1), in other words one bed will be free in the second resource.

Terms: Business Large, MultiUser, resource capacity, parent resource, single resource, child resource, capacity concept, capacity

Inserting booking form/calendar to the site.

Inserting booking form/availability calendar into the post or page. 

Open the edit post or edit page menu page or add new page or post and inside of the edit content toolbar click on Booking Calendar button (button with calendar icon). Inside of the configuration popup dialog select your  booking resource (in the paid versions only) and configure other options, like number of visible month of calendar, inserting the booking form with calendar or just availability calendar and insert the booking shortcode into the content of post or page. Publish or update the post or page, open it at client side of site and you will be able to see and make bookings in the booking form. 

 Booking Calendar Personal and higher versions.
In the paid versions of Booking Calendar  (Personal, Business Small/Medium/Large, Multiuser), you will be able to select, in the popup configuration dialog additional parameter(s), like booking resource (your different properties, like rooms or services). It's mean that each booking calendar in the booking form, will have identification for the the specific booking resource. And you can make the different bookings for the same dates but in these

Booking Calendar Business Medium/Large versions
In additional at the Business Medium/Large versions of the Booking calendar, you can select the different booking forms (you can customize the different booking forms at these versions at the Booking > Settings > Fields page).

Terms: Personal, Business Small, Business Medium, Business Large, MultiUser, insert booking shortcode, insert booking form into post or page. 

Inserting the booking form/calendar in sidebar widgets.

Please open the WordPress admin menu page: Appearance > Widgets configuration.  Add the Booking Calendar widget to the one of your sidebars and configure the parameters, like a booking resource (in the paid versions only), number of visible month of calendar, inserting the booking form with calendar or just availability calendar etc...

Terms: Personal, Business Small, Business Medium, Business Large, MultiUser, widget, booking calendar widget.

Inserting the booking form/calendar into any other place of your site
You can insert the booking form or calendar into the any other place of your site by editing the PHP code of your theme files and insting the special code for that. Please read more detail about how to do this in the FAQ.

Terms: Personal, Business Small, Business Medium, Business Large, MultiUser, inserting booking calendar in any pace of your site.

Configure of Booking Calendar Free version.

After activation of plugin, you are almost ready to use it.

Inserting the booking form into post or page (widget or any other place of your site)
Just open the edit post or edit page menu page or add new page or post and inside of the edit content toolbar click on Booking Calendar button (button with calendar icon). Inside of the configuration popup dialog configure the options, like number of visible month of calendar, inserting the booking form with calendar or just availability calendar (paid versions in additional will have possibility to select the specific booking resource, for having different booking availability calendars; in some versions also possible to select the custom booking form, or inserting the search form) and insert the booking shortcode into the content of post or page. Publish or update the post or page, open it at client side of site and you will be able to see and make bookings in the booking form.
You can also show the booking form or availability calendar using the booking calendar widget at your sidebar. So please open the WordPress widget menu page and configure the booking calendar widget.
It's possible to integrate the booking calendar form into the any other place of your site, using the special PHP code, please read more detail about this at the FAQ.

Checking new bookings.
After your visitors are made the booking at your site, you will receive the email about the new booking to the email, which you are set at the General booking settings page. You can check the booking at the "Booking listing" page of your WordPress admin panel. Each booking consist information about the dates of reservation data from booking form fields, ID of booking, date of booking creation, booking status, like approved or pending booking.
At the top of this page you can use the booking filter tab to show the bookings, which are fit to parameters of the booking filter.

Changing status of bookings (approve/decline/set pending/set as read).
You can approve, delete, set pending status, or mark as read for the single booking using the buttons at the right side of each booking at the "Booking Listing" page (mark the single booking as read, you can make by clicking on the "new" label at the left side of booking.
The same actions you can make at the multiple bookings, if you are select the multiple bookings, by setting checked the checkboxes at left side near each booking and using the specific button at the top of the page at "Actions tab".

Adding new booking.
You can add a new booking at the client side of site, as a regular visitor of your site, where you are inserted the booking form.
You can also add new booking at the admin panel at the "Add new booking" menu page. At this page you will see the same booking form as at client side.

Settings configuration of booking calendar.
You can configure the different settings of availability calendar, booking form or plugin options at the general booking settings page.

Main section of General Settings page.

"Admin email" - default admin email for notifications about new bookings and other actions in a booking system.
"Show hints" - show / hide help hints, at the admin panel.
Expanded advanced settings of JavaScript loading
"Dissable Bootstrap loading at Client side" - if your theme or some other plugin is load the BootStrap JavaScripts, you can dissable loading of this bootstrap script by this plugin. Please do not activate this feature, if no any other plugin or theme is not loaded these scripts, otherwise can be some issues (issue - warning message about not selected days in calendar during reservation process, even if the dates are selected).
"Dissable Bootstrap loading at Admin side" - if your theme or some other plugin is load the BootStrap JavaScripts, you can dissable loading of this script by this plugin. Please do not activate this feature, if no any other plugin or theme is not loaded these scripts, otherwise can be some issues.
Expanded settings of powered by notice
"Powered by notice" - turn On/Off powered by "Booking Calendar" notice under the calendar in booking form.
"Copyright notice" - turn On/Off copyright notice at footer of site view.

Calendar section of General Settings page.

"Calendar skin" - select the skin of booking calendar
"Number of months" - select your maximum number of scroll months at booking calendar. It's number of months, which you can scroll in calendar using the scroll month arrow in a header of calendar.
"Start Day of week" - select your start day of the week in calendar.
"Multiple days selection" - Activate or disable possibility to select single or multiple days in calendar. If you will leave this option unchecked so you will be able to select only one date in calendar.
"Unavailable days from today" - select number of unavailable days in calendar starting from today date. It's useful if you can not accept bookings for today or today and tomorrow days, etc...
"Unavailable days" - set the specific week days (Sunday / Monday / Tuesday / Wednesday / Thursday / Friday / Saturday) as unavailable days in calendars. This option is overwrite all other settings.

Form section of General Settings page.

"CAPTCHA" - activate CAPTCHA inside of booking form.
Auto fill fields" - activate auto fill fields of booking form for logged in users.
"Show legend" - hide or show legend of dates under booking calendar.
"Show "thank you" message after booking is done" - activating showing of the message for the specific time, after visitor is made the reservation.
"New booking title" - mesaage what is showed after booking has done by visitor.
You can use this shortcode inside of that message: [lang=LOCALE] - start new translation section, where LOCALE - locale of translation
Example #1: [lang=fr_FR] - start French tranlation section.
Example #2: "Thank you for your booking.[lang=fr_FR]Je vous remercie de votre reservation." - English and French translation of some message.

"Showing title time" - time count in miliseconds for showing "new booking title"
"Redirect visitor to a new "thank you" page" - instead of showing message for specific time, the visitor will be redirected to a new page, after he will made the reservation, if this option is activated.
"URL of "thank you" page" - URL of "thank you" page.

Booking listing section of General Settings page.

"Bookings number per page" - select number of bookings per page in booking listing
"Bookings default order" - select your default order of bookings in the booking listing
"Default toolbar tab" - select your default opened tab in toolbar at booking listing page
"Date Format" - set your dates format, like "June 10, 2012" or "2012/06/10" or "06/10/2012" or "10/06/2012" or custom format (please check more info at documentation on date formatting). This date format is apply to the dates in emails and booking listing table.
"Dates view" - select default type of dates view at the booking tables. You can select sowing of all dates, or showing only check in and check out dates for the each reservation at the booking listing page and inside of email templates.

User access level section of General Settings page.

"Bookings Calendar menu pages" - select the minimum user access role to access for the specific page of admin booking panel.

Uninstal / deactivation section of General Settings page.

"Delete booking data" - activate this option if you want to completly delete booking data during deactivation of plugin.