View Product Page

General settings

From YITH > Settings > “General settings” you can decide which theme you want to use in combination with the booking plugin. We suggest using our YITH Proteo theme, but you are free to use your own theme.

Suggested themes

You only have to activate it by clicking on the link ‘activate’, and you are ready to go. The plugin will show a ‘check mark’ once the theme has been activated.

booking proteo integration

From Appearance > “Proteo Theme” you can find the 3 ‘Booking’ skins you can activate and use. These skins are ONLY available if you’ve purchased and activated the YITH WooCommerce Booking and Appointments plugin.

For more information on how to set up your Proteo theme, check out the documentation here.

Now we go back to the ‘General settings’ page, as from here you can also set some other general settings:

General settings
  • Set which categories to show in search forms:
    • All product categories: Useful if you do not sell non-booking products.
      • Choose specific product categories: Useful if you also sell non-booking products. Eg. you do not want to show the clothing category in the booking search form.
        If this option is not available in your installation, make sure you have enabled the related module from YITH > Booking > Modules.
  • Reject a “Pending confirmation” booking after a specific time: Decide if you want to reject a booking automatically and set the number of days. The booking with pending confirmation will be rejected automatically when reaching the number of days you have previously configured.
  • Set paid booking to “Completed”: Decide if you want to set a booking to ‘completed’ automatically and set the number of days. The paid booking will be set to completed automatically, as soon as the End Date has been exceeded by the specified number of days.

Please note: it doesn’t take into account hours/minutes since the check is executed daily.

Google Map API KEYS

To set the location for your products, the plugin uses Google Maps services.

First of all, you have to generate and copy your “Google Maps API Key”.
To access Google, go to https://developers.google.com/maps/documentation/javascript/get-api-key, and click on “Get a key”.

Google Maps API KEy authentication

After selecting the project, in the next step, you will obtain the key required by the plugin.

Google Map API KEY

Now, make sure you have enabled the Google Maps module from YITH > Add-ons > Modules.

Now, you will be able to see the Google Maps API Key fields in YITH > Booking > Settings > General settings > “Google Maps API Key”: copy and paste the key there.

Google Maps

Now open your product settings (Booking Options > Settings > Google Maps), type in the name of the location you wish to select and you are done.

You can set 2 different API Keys for:

  1. Google Maps API Key
  2. Google Maps Geocode API Key
Google Maps API keys

To set them correctly, you should create 2 different API Keys in Google Console:

1. The Google Maps API Key can be restricted through HTTP referrers.

api key settings google

2. The Google Maps Geocode API Key can be restricted through IP addresses.

api key settings google

How to enable Geocode and Places libraries in your Project

To have everything work correctly, you need to enable Geocode and Places libraries in your Google project.

Geocode library

To enable the Geocode API library, please follow this procedure:

Geocode-library
  • Now search for Geocode API and enable it.
geocode-library2
Geocode-library3

Places library

To enable the Places API library, just follow the same procedure described above.

How to display the map

By entering the shortcode [booking_map] within the Booking product page, the Google map linked to the product location will be automatically displayed.

Map

The shortcode attributes are:

  • width: map width
  • height: map height
  • zoom: map zoom level
  • type: map type, choosing from:
    • roadmap: displays the default road map view. This is the default map type.
    • satellite: displays Google Earth satellite images
    • hybrid: displays a mixture of normal and satellite views
    • terrain: displays a physical map based on terrain information.

Usage example:

 [booking_map width='300px' height='300px' zoom='100' type='satellite']

Booking form position

From YITH > Booking > Settings > “Booking forms” you can manage the booking form position on the single product page.

Booking form options
  • Show booking form in booking product page to: Decide to show the form to all users or only to logged users. If you decide to show it only to logged users, guest users will not be able to place a booking.
  • Booking form position:
    • Default
    • Before summary
    • After title
    • Before description
    • After description
    • After summary
    • Use widget
    • None (use shortcode)

We especially want to highlight the “use widget” and the “none” options.

None – use shortcode

Selecting the “None” option, allows you to use the “[booking_form]” shortcode to place the booking form anywhere you want. You can use it without any parameters on the product page.

If you want to use it on other pages, you’ll need to use a parameter (product ID), eg: “[booking_form id=123]”.

example shortcode

Use widget

Selecting the use widget” option, the special “Booking product form” widget becomes available. You can find this widget in Appearance > Widgets.

Bookable product form - widget

This widget needs to be added to the product page sidebar. If you are using the YITH Proteo Theme, you can use any Proteo additional sidebar (sidebar 2, sidebar 3, …), you should set the sidebar to be shown on the product pages.

Note: the widget is only shown on the product page. If your theme does not include a product page sidebar, you are not able to use this widget.

example widget

People in booking form

If you want to show the types in a unique field in the booking form, you can enable the option “People types layout” in the YITH > Booking > Settings > “Booking form” section.

People types layout

  • Show as dropdown: Click on the “people” field in order to see the people types.
  • Show people type fields: People types are shown in the booking form.
    • Columns for people fields: Decide how many columns to show.

show people

How to enable people management for your bookable products? Take a look at this page here.

Calendar options

From YITH > Booking > Settings > “Customizations” you can manage the way you want to show the date picker and calendar in the booking form.

You can select the format of the date and the time picker in the calendar view.

Date picker options
  • Date picker format
  • Time picker format

There is also an option to add a custom format. When you select your preference, you can see the preview below your selection.


Now we can go back to YITH > Booking > Settings > “Booking forms” to manage the style and layout of the calendar shown to the customers.

Date picker layout options
  • Date range picker layout: Decide to show it in a single line or separate lines.
  • Date range picker columns: Decide to show it in a single column or 2 columns.
examples of layout and columns
show calendar options
  • Calendar style: Decide to show the calendar as a dropdown or inline on the page.
calendar inline or dropdown example
  • In calendar load: How many months are loaded in the calendar, we recommend 3. (You will be able to see the complete year, other months are loaded in AJAX to improve performance).

Resources and time selector layout

Resources default layout: choose to show the resources in a dropdown menu or list them all in the booking form. This option can be overridden on each bookable product edit page.

Resources in a dropdown
Resources in a dropdown
Resources as a list
Resources as a list

Time selector layout: choose to show all available time slots either in a dropdown menu or by listing them in the booking form.

Time selector in dropdown
Time selector in dropdown
Time selector as a list
Time selector as a list

Calendar options
  • Check min/max duration: Enable so the plugin considers the min and max duration to show available dates in the calendar.
  • Update non-available dates on loading (AJAX): Only enable if you use plugins to cache product pages.
  • Disable day if no time is available: Enable to hide days in the calendar if no time is available.
Block dates for pending bookings
  • Block dates for pending bookings: Enable to block dates after receiving bookings with a confirmation request. In this way, it won’t be possible for other users to book the same dates as bookings with pending status. To unblock the dates, set the pending bookings to Rejected.

Services options

From YITH > Booking > Settings > “Booking forms”  you can manage the visibility of the services and their details.

Please, note that these options are only visible if you have enabled the Services module from YITH > Booking > Modules.

Services settings in booking form
  • Info to show before “Book” button: (Example)
    • Prices for services
    • Descriptions for services
    • Included services
    • Totals
  • Service info layout: (Example)
    • Show in tooltip
    • Show inline
  • In case of errors in the booking form: (Example)
    • Disable the “book” button and show messages when updating the form
    • Show error messages after clicking on the “book” button
Example with all services selected
frontend booking form example

 

Example of services layout inline and tooltip
show services info inline or tooltip

 

Example In case of errors in the booking form
error in booking form

Plugin calendar settings

From YITH > Booking > Settings > “Calendars” you are able to manage the settings for the calendars that are visible to you (admin) in the backend in Dashboard > Calendar.

Plugin calendar
  • Default time step in daily calendar: Decide to show the daily calendar in blocks of 1 hour, 30 minutes or 15 minutes.
  • Default start time in daily calendar: Decide the default start time of your calendar view.
  • Booking name in calendar will include: Decide which information is shown in the name of the booking in the calendar.
examples
Show booking ID and product name
Booking ID and product name
Show booking ID and user name
Booking ID and user name
Show booking ID, product and user name
Booking ID, product and user name
Show booking ID, user and product name
Booking ID, user and product name

External calendars

In YITH > Booking > Settings > “Calendars”, you can find these two options:

External calendars settings

  • Calendar synchronization expires after: The minimum time for which the external sync is considered expired.
  • Show bookings of external calendars in plugin calendar: Enable to show external bookings in Dashboard > Calendar.

Example

If you set the first option to 30 minutes and synchronize a Booking product now (by contacting external services such as Airbnb or Booking.com), the loaded data will expire in 30 minutes.

So, if a customer checks the availability now, the plugin uses the loaded data as it is -still not expired-. After 30 minutes, the data will no longer be updated automatically, since it requires to be synchronized again.

If a customer checks the availability after 1 hour, the plugin will consider the data as expired and will update the external data to check the correct availability.


We recommend setting this option to a reasonable value to improve performance. Therefore, if you usually get a booking every 6 hours, you can set the “Calendar synchronization expires after” option, to 2 hours.
As a general rule, 30 minutes is a good sync expiration time for every Booking system.

Please note: Airbnb synchronizes external bookings every 2 hours.

For more information on synchronizing your calendars, please refer to this page here.

Google Calendar

Thanks to the integration with Google Calendar, the admin can view bookings on their own Google Calendar. The booking synchronization is one-way sync (from your site to Google Calendar).

You can configure the Google Calendar from YITH > Booking > Settings > “Calendars”.

First of all, you need to set Client ID and Client Secret as explained in the related section of the plugin.

Google calendar

After creating a project in https://console.developers.google.com/ and enabling Google Calendar API in Your Project -> Library, you need to create an OAuth Client ID for a Web application in Your Project and create your credentials.

google_calendar_settings_2

When creating the client ID, select Web application in the Application type and enter a name. Then insert the link in the Authorized Redirect URLs.

google_calendar_settings_3After creat++ing your credentials, you need to copy the Client ID and Client Secret.

google_calendar_settings_4

Now you need to add and save the credentials.

Google calendar settings

Now, you can have access to Google Calendar from the related plugin section.

Google Calendar settings

You need to select the account that will be synchronized.

google_calendar_settings_7

Click on the Allow button to proceed with the calendars management.

google_calendar_settings_8

Now select the calendar on which you want to show all your bookings and save the options.

Google Calendar settings

Google Calendar settings

In Google Calendar settings, you can find some new options:

  • Debug: when applying a debug, this will show in the plugin Logs section.
  • Synchronize: you can choose when synchronizing bookings for one or all of the following options:
    • on booking creation
    • on booking update
    • on booking status update
    • on booking deletion.
  • Add note on sync: if enabled, a private note will be added to the booking every time the synchronization with Google Calendar is applied.
  • Event name will include: Decide which information is shown in the name of the booking in the calendar. You can see some examples on this page here.

Actions

There are two kinds of actions that can be applied for booking synchronization:

  • Synchronize not synchronized bookings: this allows synchronizing those bookings that have never been synchronized.
  • Synchronize all bookings (Force): this allows forcing the synchronization of all the bookings available on the site.