Booking Calendar Form main features:
» Booking form connected to PayPal » Optional availability verification » Visual form builder » Responsive & mobile optimized » Season management » Weekly bookings supported » Fixed days bookings supported » Full-day bookings or partial-day bookings as used in hotels » Built-in captcha anti-spam » Configurable email texts » Configurable validation messages » Printable bookings list » iCal link to export bookings to external calendars (ex: for exporting to Google Calendar, Airbnb, ...) » Multiple colors for marking dates on the booking calendar » ... and more features (see below)
With the Booking Calendar Contact Form you can create a booking form with a reservation calendar or a payment form connected to a PayPal payment button. The reservation calendar lets the customer select the start (ex: check-in) and end (ex: checkout) dates.
The reservation calendar is an optional item, so it can be disabled to create a general purpose payment/contact form.
There are two types of bookings available in the calendar configuration: full day bookings or partial day bookings. With full day bookings the whole day is blocked / reserved while in partial day bookings the start and end dates are partially blocked as used for example in room/hotel bookings.
- Booking form connected to PayPal: After clicking the reservation / book button on the booking form, the user is redirected to PayPal and after completing the payment three emails will be sent: the automatic PayPal notification, the booking confirmation email to the user sent from the website and the notification email to the website administrator containing the booking details. At this point the booking will be confirmed and will appear in the bookings list and calendar.
- Reservation / booking calendar with optional availability verification: The dates are blocked in the calendar only if the “bookings overlap” option is enabled (it’s enabled by default).
- Season management: Configuration accepts different prices for different dates (ex: low / medium / high season prices, special date’s prices, etc…)
- Supports full-day bookings or partial day bookings as used in hotels / room reservations (details mentioned above)
- Allows to disable/hide the booking calendar to convert the booking form in a general purpose contact form
- The calendar an form are fully responsive and mobile optimized
Other features also present in this version:
- Built-in captcha anti-spam protection on the booking form
- Easy visual selection of the start and end dates
- Configurable email texts
- Configurable validation messages
- Lets to assign a user to the calendar, this way a user with editor access will access his/her own booking calendar
- List of bookings with print option
- Supports bookings of a fixed length, example weekly bookings
- Price structure can be defined for each number of days
- Calendar configurable settings: date format, min/max dates, block dates, mark holidays, select working weekdays, calendar pages
What isn’t included in the free version described here?
- The Form Builder for customizing the form is present only in the commercial versions. The free version works with the classic predefined form included on it.
- Full iCal sync available in Platinum version
- Coupons/discount codes and other minor features are present only in the commercial versions.
For information about the commercial versions check the plugin’s page: https://bccf.dwbooster.com/download
Note: Payments processed through the plugin are SCA ready (Strong Customer Authentication), compatible with the new Payment services (PSD 2) – Directive (EU) that comes into full effect on 14 September, 2019.
The Booking Calendar Contact Form plugin is compatible with all charsets. The troubleshoot area contains options to change the encoding of the plugin database tables if needed.
Translations are supported through PO/MO files located in the Booking Calendar Contact Form plugin folder “languages”.
The following translations are already included in the plugin:
- Afrikaans (af)
- Albanian (sq)
- Arabic (ar)
- Armenian (hy_AM)
- Azerbaijani (az)
- Basque (eu)
- Belarusian (be_BY)
- Catalan (ca)
- Central Kurdish (ckb)
- Chinese (China zh_CN)
- Chinese (Taiwan zh_TW)
- Croatian (hr)
- Czech (cs_CZ)
- Danish (da_DK)
- Dutch (nl_NL)
- Esperanto (eo_EO)
- Estonian (et)
- Finnish (fi)
- French (fr_FR)
- Galician (gl_ES)
- Georgian (ka_GE)
- German (de_DE)
- Greek (el)
- Hebrew (he_IL)
- Hindi (hi_IN)
- Hungarian (hu_HU)
- Indonesian (id_ID)
- Italian (it_IT)
- Japanese (ja)
- Korean (ko_KR)
- Latvian (lv)
- Lithuanian (lt_LT)
- Macedonian (mk_MK)
- Malay (ms_MY)
- Malayalam (ml_IN)
- Norwegian (nb_NO)
- Persian (fa_IR)
- Polish (pl_PL)
- Portuguese Brazil(pt_BR)
- Portuguese (pt_PT)
- Russian (ru_RU)
- Romanian (ro_RO)
- Serbian (sr_RS)
- Slovak (sk_SK)
- Slovene (sl_SI)
- Spanish (es_ES)
- Swedish (sv_SE)
- Turkish (tr_TR)
- Tamil (ta)
- Thai (th)
- Ukrainian (uk)
- Vietnamese (vi)
The “Troubleshoot Area” is located below the booking calendars list.
Important!: Use the “Troubleshoot Area” area only if you are experiencing conflicts with third party plugins, with the theme scripts or with the character encoding.
Script load method: Change the script load method if the booking form doesn’t appear in the public website. In most cases changing the booking form load method to “direct” will solve the problem, however if possible leave the default setting “classic”.
Character encoding: Update the charset if you are getting problems displaying special/non-latin characters in the booking form, reservation emails or booking list. After updated you need to edit/enter the special characters again.
Min and max number of nights to be booked
There are two new settings in the booking calendar administration area:
Minimum number of nights to be booked: If set to a number greater than zero, the booking form won’t accept bookings of less than the indicated nights.
Maximum number of nights to be booked: The booking form won’t accept booking of more than the indicated nights in this field.
Supplement for specific bookings
You can apply supplements for bookings under some specific number of nights, or over a specified number of nights, or both.
The field “Supplement for bookings between X and Y nights” makes the booking form add the specified supplement once for bookings between the indicated number of nights.
Settings for both admin and public calendars
- Calendar Pages: Number of calendar months to display at the same time
- Calendar Language: Language used for the calendar. The default is auto-detect that works in most cases. If the auto-detect doesn’t get the expected language then select it manually.
- Start Weekday: Start weekday, usually Sunday or Monday.
- Date format: Select dd/mm/yyyy or mm/dd/yyyy
- Accept overlapped reservations: Indicate if more than one reservation will be allowed in the same days. Default is “no overlapped” for an active availability verification.
- Reservation mode: Select Complete day means that the first and the last days booked are charged as full days; Partial Day means that they are charged as half-days only.
Settings for public calendar only
- Minimum available date: The minimum selectable date in the calendar. Examples: 2012-10-25, today, today + 3 days
- Maximum available date: The maximum selectable date in the calendar.
- Minimum number of nights to be booked: The booking form won’t accept less than the indicated nights on this field.
- Maximum number of nights to be booked: The booking form won’t accept more than the indicated nights on this field.
- Working dates: Working dates are the dates that accept bookings. Use this for example to disable the weekends or other specific weekdays.
- Disabled and special dates: Click a date to mark it as disabled, for example for disabling holidays or other dates where reservations aren’t allowed.
- Enable Fixed Reservation Length?: Use this for allowing only bookings of a specific number of days. More details in the next section
Fixed Reservation Length
If you enable the option “Fixed Reservation Length” for the calendar that means that you want to accept only bookings of the specified length (number of days), for example for accepting only 7 days bookings.
The settings fields for this option are:
- Fixed reservation length (days): The number of days that must have the booking.
- Start Reservation Date: Use this for allowing specific weekdays as start of the reservation, for example if you want to indicate that all the bookings must start on a Monday.
- Disabled and special dates: When the “Fixed Reservation Length” is enabled you can use the calendar for indicating specific starting days for the bookings. This is useful if you are offering packages that start only on specific dates.
When this mode is enabled, the customer only has to select the start day for the booking and the end date is calculated automatically.
The form builder is fully available only in the commercial versions. If allows to fully customizing the form: add, edit and remove fields.
There is an area to indicate the label used for the submit button. The class=”pbSubmit” can be used to modify the button styles. The styles can be added into the “Customization area >> Add Custom Styles” (at the bottom of the page that contains the list of calendars): For further modifications the submit button is located at the end of the file “dex_scheduler.inc.php”. For general CSS styles modifications to the form and samples check this FAQ: https://bccf.dwbooster.com/faq#q82
Use this area for translating of setting custom validation messages for the form fields.
This administration section allows setup most of the price structure for the bookings. The following settings fields are available:
- Currency: The currency used at PayPal. Example currency codes: USD, EUR, GBP, CAD, AUD, NZD, CHF, MXN, CZK, DKK, NOK, SEK, HKD, SGD, HUF, ILS, JPY, PLN
- Default request cost (per day): The default request cost for each day. This amount is the fee per day, for example if the value specified here is us$25 and the reservation is for 4 days then the payment amount will be us$100.
- Total request cost for specific # of days, # of days to setup: The “total” request cost for bookings of a specific number of days. This has precedence over the default cost.
- Supplement for bookings between X and Y nights: Supplement (or discount if negative) can be applied to bookings which length is into the specified range of days.
- Seasons configuration: Allows to apply different prices on different seasons (configured with start and end dates). The season prices will overwrite the default request cost and the total request cost for specific days if that option is used.
PayPal Payment Configuration
Settings related to the PayPal payment processing. The settings fields are:
- Enable PayPal Payments?: The free version supports PayPal enabled or disabled. The commercial versions support other options like “Optional” to let the customer select PayPal or just submit the booking for a payment later. If “Optional” is selected (commercial versions), a radio-button field will be added to let the customer select “Pay with PayPal.” or “Pay later”.
- PayPal email: The email of the PayPal that will receive the payments.
- PayPal product name: The name that will appear to the customer at PayPal.
- URL to return after successful payment: After the PayPal payment the user may go back to a page into your website (usually a “thank you” page). Paste here the complete address of that page. Important note: This field is used as the “acknowledgment / thank you message” even if the PayPal feature isn’t used (commercial versions).
- URL to return after an incomplete or cancelled payment: After a canceled/incomplete PayPal payment the user may go back to a page into your website, usually a page with more instructions or requesting feedback. Paste here the complete address of that page.
- PayPal language: The language that will be used for the PayPal payment. It’s any PayPal supported language.
- Taxes (applied at PayPal): Specify a number (percent) for adding taxes at PayPal (example: enter 10 for a 10%, don’t include the % symbol).
- Discount Codes: Available only in commercial versions. Adds a field for entering discount codes and apply them to the price.
Optional Services/Items Field
This feature is available only in the commercial versions. These area optional fields that appear only if some option is specified. Useful for selecting additional items with prices for the booking, example: optional services like “Internet” or “Parking” in a hotel booking.
Notification Settings to Administrator(s)
Setup area for the notifications sent to the administrator(s) after the booking is completed. Settings fields:
- Notification “from” email: The email used as from in the notifications.
- Send notification to email: The email address where the notification will be sent to (ex: your email address).
- Email subject notification to admin: Subject of the notification email that you will receive.
- Email notification to admin: Content of the notification email that you will receive. Keep the tag %INFORMATION% that will be replaced automatically by the booking information.
Email Copy to User (auto-reply):
Setup area for the auto-reply email sent to the customer after the completing the booking. Settings fields:
- Email field on the form: Select which of the form field will contain the user’s email address to send the auto-reply.
- Email subject confirmation to user: Subject of the thank you/confirmation email sent to the user (customer) after completing the payment.
- Email confirmation to user: Content of the thank you/confirmation email sent to the user (customer) after completing the payment. Keep the tag %INFORMATION% that will be replaced automatically by the booking information.
Setup area for the built-in antispam captcha verification. Settings fields:
- Use Captcha Verification?: Select if the captcha image will be used.
- Width: Width of the captcha image.
- Height: Height of the captcha image.
- Chars: How many characters will appear in the captcha image.
- Min font size: Minimum size used for the font (randomized).
- Max font size: Maximum size used for the font (randomized).
- Preview: Preview for checking how the captcha image will look.
- Noise: Amount of noise to make it stronger.
- Noise Length: Length of the noise to modify its look.
- Background: Background color.
- Border: Border color.
- Font: Base font used to render the text. Four options already included.
This plugin provides 1 block.
- Booking Calendar Contact Form
To install Booking Calendar Contact Form, follow these steps:
- Download and unzip the booking plugin
- Upload the entire booking-calendar-contact-form/ directory to the /wp-content/plugins/ directory
- Activate the Booking Calendar Contact Form plugin through the Plugins menu in WordPress
- Configure the booking form settings at the administration menu >> Settings >> Booking Calendar Contact Form.
- To insert the booking form into some content or post use the icon that will appear when editing contents
Q: What means each field in the settings area?
A: The product’s page contains detailed information about each field and customization:
Q: Can I customize the booking calendar colors?
A: This and other questions are already answered in the product’s FAQ at this page:
Q: How to disable the accommodation availability verification?
A: In the booking calendar administration area, set the field “Accept overlapped reservations?” to “No”, this way the accommodation availability verification will be disabled. Note that the calendar will disappear from the admin area when you select this setting since its purpose is to define the available days for booking.
Q: When is blocked the reservation and sent the email with the rental information?
A: After clicking the submit / booking button the customer is redirected to a PayPal payment page to submit the payment to confirm it. After completed the payment the reservation is saved into the database and calendar, the dates become un-available it the booking availability verification is enabled and the emails are sent with the booking information and the information entered by the customer on the booking form. At that point the booking information will appear also in the printable bookings list.
A: Into the Booking Calendar Contact Form settings >> PayPal payment form configuration >> PayPal email, be sure to put your own PayPal email address instead the email placeholder put there as default.
Q: How to translate the plugin texts?
A: If you don’t want to edit the MO/PO files then just edit the texts that are at the beginning of the file “dex_scheduler.inc.php” (the booking page). The booking form validation texts can be edited from the administration area.
Q: Can I restrict the number of days to book?
A: Yes, use the settings fields “Minimum number of nights to be booked” and “Maximum number of nights to be booked” for that purpose. You can also specify a fixed reservation length if you want to allow only bookings of a specific number of days.
Q: The booking calendar form doesn’t appear. Solution?
A: If the booking calendar form doesn’t appear in the public website (in some cases only the captcha appear) then change the script load method to direct, this is the solution in most cases.
That can be changed in the “troubleshoot area” located below the list of booking calendars/items.
Q: Can the booking calendar notification emails be customized?
A: In addition to the possibility of editing the email contents you can use the following tags:
- <%itemnumber%>: Request ID.
- <%startdate%>: Start date for the booking.
- <%enddate%%>: End date for the booking.
- <%totalcost%%>: Total cost.
- <%email%%>, <%subject%%>, <%message%%>, <%fieldname1%%>, <%fieldname2%>, …: Data entered on each field.
Contributors & Developers
“Booking Calendar Contact Form” is open source software. The following people have contributed to this plugin.Contributors
- Interface modifications
- Fix for iCal format bug (the events weren’t marked as all day events)
- Compatible the latest WP and jQuery versions
- Replaced YUI calendar with a jQuery calendar
- Added support for weekly bookings
- New language translations
- Several bug fixes and new features for deposit payments
- Fixed encoding issues at PayPal
- Fixed bug in the address of the corner images for partial days mode.
- CSS styles updates to avoid conflicts with theme styles
- New options for customizing the emails
- New feature for applying taxes
- Compatible with the latest WordPress versions
- New language translations
- Fixed bugs in the language traslations
- Interface updates
- Fixed warning that appeared with PHP safe mode restrictions
- Sanitized GET parameters used in queries
- Fixed issue with the site home URL in WP with folders in non-default locations
- Fixed bug in the url generated for the IPN under HTTPS connections
- Fixed bug in the function that generates the url for the ipn notification
- Update for SQL issues – sanitized values
- Update to make the IPN work over SSL connections
- Fixed bug in email processing
- Updates to minimize conflicts with third party themes and plugins
- New feature to show/hide the calculated cost below the calendar
- CSS update to avoid conflicts with the new WP default theme
- Compatible with the latest WordPress 4.2.2 version
- Fixed notice warning in not active feature
- Fixed bug in date calculation
- Fixed IPN address under SSL connections
- CSS update to fix the floating dialog height
- Fixed conflict of captcha image with zLib library
- Fixed bug in the path calculated for the admin area
- Translations updated
- Improved security
- Compatible with the latest WordPress 4.2.3
- Modification to prevent conflicts with ZLib
- Update to the heading tags for the new WP version
- Fixed bug in IE 11
- Update to translations
- Implemented better submission process
- Compatible with the latest WordPress 4.3
- Value of POST parameter has been corrected
- Update to Dutch language file
- Code sanitization
- Fixed bug in admin area
- Added support for new charsets
- Added access for subscribers to manage their calendars
- Updated menu slug
- Interface updates
- Tested and compatible with WordPress 4.4
- Fixed style in the new WP 4.4 theme
- Fixed captcha issue
- Fixed null value issue in query
- CSS styles updated
- DB structure update
- Fixed captcha issue in Windows servers
- Improved captcha security
- Updates to admin interface
- Translation opdates
- Captcha code updates
- Fixed Polish language ID
- Fixed PHP session issues
- Fixed XSS and SQL injection issues
- Updated API URLs
- Added nonces to delete actions
- Added price formatting
- Fixed bug in admin settings
- Fixed POST parameter in booking form
- Multiple language updates
- Compatible with WP 4.5
- Fixed posted data encoding
- Script load updates for WP 4.5
- Multiple destination emails supported
- Moved old changelogs to external file
- Changed init hook to avoid plugin conflicts
- New reply-to feature for admins
- Removed old versions of Booking Calendar Contact Form
- Fix in throubleshoot area
- Fix in email delivery
- New plugin doc and website
- Updates and docs
- Params sanitization
- Modified from email format
- Update about new versions
- Settings link fixed
- Added fr_CA language
- Compatible with WP 4.6
- New custom mod form
- Changed placeholder from email to avoid PHPMailer errors
- Removed stripslashes function
- Added additional security verification
- Improved magic quotes detection
- Instructions update
- Language update
- Interface update
- Corrections to French language
- Fixed lang identifiers
- Support link tracking
- DB structure updates
- PayPal IPN update
- Improvements to support docs and service
- Compatible with WP 4.7
- PayPal button update
- Instructions update
- DB updated
- New support area
- Captcha update
- Database improvements
- Additional config field
- Fixed bug in bookings list
- Product name update
- Admin intf update
- Dashboard updates
- Old update queries removed
- Security improvement
- Code improvements
- Compatible with WP 4.7.3
- Update related to the parameters in the PayPal IPN notification
- Decreased params number in PayPal IPN
- Tags updated to max 12
- Added email validation in admin
- Type email for email input fields in booking form
- Added more field validation to settings form
- Better captcha code for loading speed and security verificatins
- Better SQL sanitization
- Optional review box
- Replaced link tags by wp_enqueue_style
- Removed notices from admin area when WP_DEBUG enabled
- PayPal email sanitization
- Removed multiple CSS style references replaced by wp_enqueue_style
- Tested and compatible with WordPress 4.8
- Removed deprecated PayPal parameters
- Cleanup for PayPal parameters
- Accessibility updates
- New feature for exporting bookings through iCal link/file
- Moved plugin website and links to SSL
- Removed use of deprecated MySQL functions
- Validation updates
- PayPal return address santized
- Fixed number validation issue in Google Chrome
- Improved print option for bookings list
- Fixes in admin area
- Better PayPal currency selection
- Price number formatting
- Fixed bug in validation translations
- Added general default values
- Admin settings validation improvements
- Security improvement for queries sanitization
- Improved file extension verification
- Encoding fix un public booking form
- Compatible with WordPress 4.9
- Optimized code. Removed blocks not longer needed.
- Improvements to the captcha settings area
- Fixed bug in review panel
- Improved submission to prevent duplicated bookings
- Fixes to language settings
- Default script loading changed to classic
- Better currency auto-detection
- Fixes captcha settings issue
- Database structure update
- New feature for backup and restore forms
- Label updates to fix layout issues
- Improved CSS edition area
- Fixed conflict with autoptimize plugin
- Fixed captcha reloading issue
- Better captcha notification messages
- Improvements to bookings list to match GPDR requirements
- Added min and max date validations
- Code speed optimizations and POST data sanitization
- Easier activation process
- Fixed initialization issue and added opt-in feedback
- Fixed bug in activation process
- Added support for INR – Indian Rupee and ARS – Argentine peso currencies
- Database creating encoding fix
- New fix to activation issue
- Fixed conflict with bootstrap calendar
- Compatible with Gutenberg
- Fix to Gutenberg integration
- Fixed conflict with Gutenberg editor
- Fixed magic quotes issue
- Interface icons updated
- Improved custom CSS and JS edition area
- Improved CSS customization
- Fixed jQuery slim conflict
- Currency setting clarifications
- Fixed conflict with third party plugins
- Major update: new visual form builder, publishing wizard, improved interface
- Gutenberg copatibility updates
- Fixed conflict with loading page plugins
- Interface updates and jQuery calendar fixes
- New option for adding bookings in the admin
- Major update: Fully responsive mobile optimized calendar
- Fixed visualization issue.
- Improved calendar rendering
- Improved interface and admin calendar
- New settings for calendar width and height
- New Gutemberg block. Optimized plugin size.
- Fixed data processing issue
- Improved data management
- Removed use of CURL
- Fixed bug in dates selection
- Fixed bug in Gutemberg integration
- Improved language translations and interface styles
- Better email auto-config and compatible with latest WP version
- Fixed bug in email settings
- Fixed bug in saving data process
- Fixed conflict with lazy loading feature of Jetpack
- Fixed conflict with Yoast SEO
- Fixed calender CSS styles issue
- Review link update
- Compatible with WordPress 5.2
- Added onchange event to date fields
- Compatible with Google Translate
- Update for compatibility with WordPress 5.2
- Code improvements
- Misc code improvements
- Fix to database encoding
- Updates to publish section
- Excluded captcha image from smush optimization
- Better support for single day bookings
- PSD 2 complaint – SCA Ready
- Bug fixes and code improvements
- Compatible with WordPress 5.3
- Fixed bug in email delivery
- Fixed conflict with bootstrap date-picker
- Interface improvements
- Rendering speed improvements
- New hooks for conversion tracking
- Compatible with WordPress 5.4
- Fixed conflict with third party optimization plugin
- Update for WordPress Editor
- Fastest form load speed
- Minimized scripts file size
- Fixed availability rendering bug
- Improved import/export area
- Compatible with WordPress 5.5
- Replaces jQuery deprecated code
- Compatible with WordPress 5.6
- New feature to locate the calendar into the form builder
- Script updates
- Compatible with WordPress 5.7
- Added feature for processing bookings without payment process involved
- Add-ons update. Improvements.
- CSS updates
- Database structure update
- PHP 8 compatibility updates
- CSS improvements
- Language support improvements
- Compatible with WordPress 5.8
- Improved price calculation
- Compatible with WordPress 5.9
- jQuery compatibility update
- Compatible with WordPress 6.0
- Validation fix
- Price calculation fix
- New price calculation fix
- Feedback panel update
- Compatible with WP 6.1
- Translation fixes
- Script fix
- PHP 8 fixes
- Output encoding fix