For better plugin performance, you will find some features in our YITH Booking and Appoint plugin disabled by default. In the tab Modules, you can find all the modules you can enable to get additional options. Let’s briefly review each of them.
With this module, you can create unlimited “people types” and set specific rules or prices for them (e.g.: Adults, Under 18, Children, Students, Over 60, Military Veterans, Members, etc.).
When enabled, the module allows you to manage additional options as described below:
Booking form – Check how to create people types here and how to show them in the booking form here.
Count people as separate bookings – If you have specific units for a bookable product/service that can’t be exceeded – for example, a mountain bike tour with limited bikes available for rent. Go here to learn how to configure the plugin.
Prices – You can create global or product price rules based on the people types. Go here for global price rules settings or here for product settings.
Search form – You can show the People field in the search form and allow users to enter the number of persons, even by people type. Go here to learn how.
Label – You can rename the default label by entering the text you prefer in the related field (People) available in the Customizations tab. Go here to see the option.
Services
With this module, you can create free or paid services to associate with your bookable products (e.g.: parking, breakfast, daily cleaning, chauffeur, insurance, etc.).
When enabled, the module allows you to manage additional options as described below:
Booking form – Check how to create services here and how to show them in the booking form here.
Costs – For every service you create, you can optionally set a cost as shown here.
Product price – You can decide whether to include the costs in the bookable product price shown on the shop page. To do it, you must enable the option that you find here.
Search form – You can show the Services field in the search form and allow users to select those they are interested in so only products with the selected services will show in the search results. Go here to learn how.
Label – You can rename the default label by entering the text you prefer in the related field (Additional services) available in the Customizations tab. Go here to see the option.
Resources
With this module, you can create unlimited “resources” to associate with your bookable products (e.g.: equipment, staff, technology, software, etc.).
When enabled, the module allows you to manage additional options as described below:
Booking form – Check how to create your resources here and how to show them in the booking form here.
Bookable products – Resources can be added to your bookable products and configured as you need. Go here to learn how to add them.
Use of resources – Go to this page to see how to use resources.
Extra costs and discounts
With the ‘Extra costs and discounts’ module, you can create unlimited costs to apply to your bookings (e.g.: insurance, visitor’s tax, cleaning service, etc.) and set discounts for weekly or monthly bookings.
When enabled, the module allows you to manage additional options as described below:
Extra costs – Check here how to create the global costs for your bookable products.
Set prices – You must set the prices for the created global costs from the dedicated tab on the product edit page. You can optionally multiply the costs by duration and/or people. Check the settings here.
Discounts – Go here to learn how to create weekly, monthly, and last-minute discounts correctly.
Search forms
With the ‘Search form’ module, you can let your users search for specific bookable products and you can choose which filters to enable for each form (dates, people, services, etc.).
When enabled, the module allows you to manage additional options as described below:
Search forms – Check here how to create your search forms.
Shortcode – Go here tolearn how to add a search form to your pages through the shortcode.
Widget – Go here tolearn how to add a search form to your sidebars through the widget.
Google Maps
With the ‘Google Maps’ module, you can set the location for your bookable products, show a Google map on the product page, and allow your users to search for products by location.
Go here to see how to integrate Google Maps to show the location of your bookable products.
Google Calendar
With the “Google Calendar” module, you can synchronize your bookings with your Google Calendar.
Go here to see how to integrate Google Calendar and let the admin view the bookings also in their calendar based on what is configured in the one-way synchronization settings.
External synchronization
With the module ‘External synchronization’ you can enable the auto-sync for the availability of your bookable products with external platforms like Booking, Airbnb, and HomeAway.
Go here to see how to iCal calendars of external services to prevent overbookings for your products thanks to a two-way synchronization.
After you enable the “People” module in Modules, you will find the People subtab inside the plugin’s Configuration tab. Let’s review the steps to set up the people types as well as some examples.
First, you need to go to YITH > Booking and Appointment > Configuration > People:
To create a new “people type” you simply need to enter the name, optionally, a short description, and click on the “Add new type” button. Then, it will appear in a table on the right:
Now, following the previous steps, let’s create a new one. In this case, it will be for people over 60 years old. After entering the details and clicking save, it appears in the table:
This module allows you to create unlimited “people types” so you can find below a few more examples of “people types” such as Student, Military, and Members:
Now you can configure people for every bookable product. You can read the “How to create a bookable product” section for further reference. Below you can find an example of how the different people types would appear inside the booking form:
After you enable the “Services” module in Modules, you will find the Services subtab inside the plugin’s Configuration tab. Let’s review the steps to set up the services.
First, you need to go to YITH > Booking and Appointment > Configuration > Services:
To create a new service the only required field is the name, however, there are some additional fields you can complete to provide more information regarding the service. Besides the name, you can also enter a slug:
Next, you can decide if the service will have a parent booking service or not:
Optionally, you can write a description:
And finally, you can set a price for the service and choose how to manage it: Set as optional – Let customers choose to add it or not, Hide to customers, Hide in booking search forms, Multiply cost by units selected, Multiply cost by people and/or Show quantity selector:
If you have enabled the “People” module, you can decide to multiply the cost by people, and you can additionally set a different price for each people type you have available:
If you decide to show a quantity selector you can set a minimum and maximum number:
Let’s create an example following these steps. A hostel wants to include a service to add breakfast for an additional fee of $5 per person, so we enter a name, and the price, we choose the option to multiply the cost by people and we click on ‘Add new booking service’. Then, we will find the service in the table on the right:
Now you can configure services for every bookable product. You can read the “How to create a bookable product” section for further reference. Below you can find an example of how the services would appear inside the booking form; in our case, we can see the ‘Breakfast’ with the cost of $5, and as we selected the option to multiply the fee by the number of people, the total value for the service in this particular booking for 2 people would be $10:
After you enable the “Extra costs and discounts” module in Modules, you will find the Costs subtab inside the plugin’s Configuration tab. Let’s review the steps to set up the extra costs and discounts.
First, you need to go to YITH > Booking and Appointment > Configuration > Costs:
These extra costs will be created globally and you will be able to later add them to your bookable products. To create a new “cost” simply enter the name and, optionally, a short description:
Once it has been created, if you want to add a specific cost to any of your bookable products, you will find them listed on the product edit page, inside Product Data > Booking Options > Costs > Extra Costs section:
Here, you can set the specific amount to charge for each cost and also decide if you want to multiply the cost by duration. If you leave the amount field empty, the cost will not be applied to the product:
Additionally, you can add specific ‘Extra costs’ that will apply only to this specific product:
Besides the extra costs, a new ‘Discounts’ section will also appear inside Product Data > Booking Options > Costs:
Here, you will be able to offer weekly, monthly, and/or last-minute discounts to encourage your users to book:
Now, let’s see an example of how the extra costs would appear inside the booking form. In this case, the amount of the ‘Cleaning fee’ has been set as a fixed price of $10:
After you enable the “Resources” module, you will find the Resources subtab inside the plugin’s Configuration tab:
In this section, click on the “Add new resource” button to create unlimited resources: for each of them you can enter a name, upload an optional image (a photo or an icon to identify the resource), set the available quantity, and the default availability:
Let’s see some examples:
You rent out meeting rooms and workspaces and you only have three projectors available. Also, for some reason, you want to set some limits for this resource: the projector will be available only from 8 a.m. to 2 p.m. on Saturdays, and it will not be available on Sundays.
Create the “projector” resource, and set the quantity to “3”
Set the resource as “Bookable” “All days” for “All day”
Click on “+ Add options for specific days”
Set Saturdays as “Bookable” only from 8 a.m. to 2 p.m.
Click again on “+ Add options for specific days”
Set Sundays as “Not bookable” for “All day”
You have a hairdressing salon with five hairstylists employed. You want to give your customers the option to choose the hairstylist when they book a haircut appointment, and you need to manage the hairstylists’ availability in an advanced way.
Create a resource for each hairstylist. So, for example, let’s create the resource “Kelly”. Add a photo to identify her
Set 1 as the available quantity
Set Kelly’s availability, according to her work shifts. So, let’s say you set her availability to “All days” from 10 a.m. to 3 p.m., and then on Sundays and Mondays she is not available so you set those days as “Not bookable”
Each product or service you want to offer to your customers through a booking system is managed on WooCommerce as a “bookable product”. So, no matter if you want to get bookings for a room, a hotel, guitar lessons, or a medical appointment: the first step is always to create a bookable product.
Create a new product in Products > Add New
In the Product Data section, select “Bookable Product” and also check the “Virtual” option if the product is not a physical product that will be shipped. Then you’ll see the “Booking Options” menu:
Step 1 – Booking settings
The first section in the Booking Options menu is Settings, it’s where you’ll start configuring the bookable product.
Set the Booking duration: here you can set if your customers can book for minutes, hours, days or months (e.g.: for an appointment, users usually book for hours or minutes; for a hotel room, they usually book for days, etc.):
You can enable the calendar range picker so the calendar is shown in the booking form on this product’s page:
You can also choose the default day to show in the booking form: you can choose to leave the field empty, show the current day, the current day + 1, the first date available, or set a custom date:
Then you can enable the “Full day booking” option. If you do, a booking from day 1 to day 2, will consider day 2 as fully booked and it will not be available for other customers to be chosen:
Below, you can set the allowed start day (e.g.: bookings can only start on Mondays) or leave empty if customers can start the booking any day of the week:
Then you’ll find the Booking Terms section where you can set the maximum number of bookings allowed per unit. For example, if you rent out three rooms in the same house, you can set “3”; if you rent out the entire house in a single booking and you need to prevent multiple bookings in the same period, you should set it as “1”:
Optional: set a minimum/maximum booking duration (e.g.: you can decide customers need to book the hotel rooms for a minimum of three days). Leave these fields empty if you don’t need to set any limits:
Optional: set a minimum/maximum advance reservation.
Optional: set check-in and check-out times. This info will be shown in the booking form:
Optional: set a buffer time between bookings: this can be useful in case you need time between bookings for the cleaning service to clean the room or simply a pause before the next booking begins:
You can enable the “Require confirmation” option if you want to get booking requests and confirm each request manually:
And you can also enable the “Allow cancellation” option if you want to allow customers to cancel their bookings. If this option is enabled, you can set a time limit, e.g.: the user can cancel a booking up to 3 days before the booking start date.
The last section, Google Maps, allows you to enter an address for the bookable product after setting your Google Maps API key and only if the Google Maps module has been enabled. By doing this, you can add a map with the location on the product page using the related shortcode:
Step 2 – People settings (available only if the “People” module is enabled)
In the People section, you can set all the options related to the people types.
First, you have to enable the option to assign people to the product:
Once enabled, you can set a minimum and a maximum number of people per booking. For example, if you rent out an apartment with two rooms, you can set a minimum of 1 person and a maximum of 8 people:
You can then enable the “Count people as separated bookings” option if you need to have only a fixed number of people per booking and count each person as a separate booking. This option is useful if you have limited availability for the bookable product, for example, you only have 10 bikes and you need to update the available quantity according to the bookings received:
You can also enable people types if you want to enable some for this specific product; keep in mind people types are created in the plugin configuration panel first:
By enabling people types, a People Types section will appear where you can enable the people types you want to show in this product and, for each of them, you can set the min/max number of people per booking (e.g.: you can set a maximum of 2 children per booking). You can also set the price for each person, this will override the base price set for the product (e.g.: the base price is $100/day per person but you can override this just for students and give them a special price of $50/day):
Step 3 – Costs
In the Costs section, you can set all the options related to the bookable product’s costs.
First, you’ll see the Standard Prices options where you can set the base price for the product (per hour/day/week/month: this depends on the booking duration you set before) and decide if you want to multiply the base price by the number of people or not. For example, you can rent out an apartment with a fixed price of $100/day, no matter how many guests are included in the booking, or set a price of $100/day to be multiplied by the number of guests:
If the “Multiply by the number of people” option is not checked, you can set an optional extra price for additional people. For example, you can set a fixed price of $100/day for the first two guests and then an extra $20/day for each additional guest:
You can also set an optional fee to charge and choose if you want to multiply that fee by the number of people or not. For example, you can create a $5 individual tax fee that all guests must pay or just a single fee to charge for the entire booking, no matter how many guests are included in the booking, like this:
In the Discounts section you can set a special last-minute discount for users booking a specific number of days before the booking start date:
In the Extra Costs section, you can set a price for the global costs that were previously created in the plugin panel or create new costs for this specific product. For example, you can add a mandatory $10 cleaning fee to each booking or check the people and/or duration options in case you want to multiply the cost:
The last section, Advanced Price Rules, allows you to create all kinds of rules to automatically change the price of the product’s base price or fee. For example, you can increase prices during the high season (e.g.: +10% during August and September) and decrease them during the low season. You can also increase the price on Sundays or during holidays, or even set a 35% discount on all bookings for this product during Black Friday:
Step 4 – Availability
In the Availability section, you can set all the options related to the bookable product’s availability.
First, you can set the default availability. You can just leave the product as available all days and for the entire day or set a specific availability for days or hours: For example, if you have a doctor’s office you can set it as not available for appointments on Saturdays or Sundays. If you have an apartment that can be booked per day but you want to use it every Monday, you can set all Mondays as “Not bookable”:
You can then create advanced availability rules: you can use the rules to enable/disable the booking availability on specific dates or months. For example, a doctor’s office will be closed for holidays for the whole month of August, so you can create a rule to set August as “Not bookable”:
Step 5 – Services (available only if the “Services” module is enabled)
In the Services section, you can add any service you created previously in the plugin panel. Since you set the services price and settings while creating them, here you only need to add them to the bookable product:
Step 6 – Resources (available only if the “Resources” module is enabled)
In the Resources section, you can set all the options related to the resources.
To do that, first you need to enable the option to assign resources to the product:
Then, you can choose how to assign the resources: you can have customers select only one resource or multiple resources, or you can automatically assign one available resource or all resources.
Below, you can set your own label for the resources:
In case you selected the option to have customers select one resource, you can make that resource mandatory or not:
In the section below, you can click on the “Add resource” button to choose which resources to assign to this product:
And for each resource added, you can set the price and an optional fee:
Resources will then be shown in the booking form like this:
Final step
Now you can finish setting up the product by adding a short description, an image to identify the product and publish it. This is the same process used to create a simple product on WooCommerce!
You can insert the booking form into the product page by adding the “Bookable product form” block to the sidebar of the product page or inside the product page, if you are using a block theme.
On the right side, you can also find some options to customize the form: you can choose which elements to show or hide (product title, rating, meta, etc.), customize the style (border radius, padding, colors, etc.), and customize the “Book” button.
Shortcode
If your theme doesn’t use Gutenberg blocks, like for example Avada, you can print the booking form on your product pages by using the shortcode [booking_form], specifying the bookable product ID in the parameter “id“. For example: [booking_form id=123]
It’s also possible to show the booking form of a specific bookable product on any page of your site. For example, if you want to create a landing page and add the booking form, or show the booking form in the header of your home page, you can use the “Booking Form” block:
Insert the block and then, on the right side, associate the form with a specific bookable product:
On the right side, you can also find some options to customize the form: you can choose which elements to show or hide (product title, rating, meta, etc.), customize the style (border radius, padding, colors, etc.), and customize the “Book” button.
This is an example of a custom page with a booking form that allows users to book a “physiotherapy session” without redirecting them to the bookable product page.
Shortcode
If your theme doesn’t use Gutenberg blocks, like for example Avada, you can print the booking form of a specific product by using the shortcode [booking_form id=123] specifying the bookable product ID in the parameter “id“.
In YITH > Booking and Appointment > Configuration > Availability rules, you can create global rules to apply to all your bookable products. These options are the same ones you can find on each product’s edit page but, from the Availability rules subtab, they will be applied by default to all products. For example, you can use the global availability rules to set all products as “Not bookable” on specific days (e.g. Sundays), during the Christmas holidays, or during the summer: