WooCommerce Bookings is a powerful extension that allows users to create bookable products for appointments, reservations, services and rentals/hires. Customers can purchase these items similar to other products on WooCommerce. In addition, you can change the dates, costs, and duration of the bookings as well.
What it would work great with
Some examples of possible uses for bookable products include:
- Booking appointments
- Hotel reservations, using the free WooCommerce Accommodation Bookings add-on
- Booking services
That being said, there are some cases that make bookings unsuitable. For example, one-time event tickets — an event is not a booking, and regular virtual products are able to do this already! If the event is recurring (i.e. every week), then WooCommerce Bookings is for you and you can integrate it with WooCommerce Order Barcodes.
With this extension, you are flexible to create and manage many booking-related products. Thus, there are a lot of uses available to optimize the booking option on your WooCommerce store, such as:
Create booking slots:
This allows you to optionally create secure vacancies for when bookings are available, or you can let your customers decide for themselves.
Fixed blocks have a determined duration that you designate. The customer is only allowed to choose one block which will last for a specific amount of time. For example, a typical hairdresser appointment lasts for one hour and you are restricted to only one booking at a time.
Customer-defined blocks have a determined duration as well, however, in this case, the customer can choose as many blocks as they want. For example, when a co-working space is available for hourly rent, the customer can decide on how many 1-hour blocks they would like to rent.
If you set your bookings to be customer-defined, you can add a minimum and maximum allowed value in the General tab. This will enable you to have a more flexible starting schedule.
Intuitive booking management:
You can use this option to filter and update your bookings, as well as booking availability, directly from your WordPress admin page.
You can create bookings for multiple people, and offer them a per-person discount as well.
Manually create bookings:
You can create bookings manually for a customer via the WordPress admin. To do this, go to Bookings > Create Booking.
A form similar to the following image should appear:
At first, you would want to choose a customer and a bookable product and click next to continue to add booking details. There are Create Order options here as well:
- If Create Order is on, it will automatically create a pending order as well as a booking. This is helpful for when you want to create a booking and have the customer pay before confirmation.
- If Create Order is off, you can only create bookings while in Pending status.
- You can also choose to assign the booking to an existing order with the order’s ID.
After clicking next, a booking form similar to those shown on the front-end pops up:
After filling out the form, you click Create Booking to save. Then, it will redirect you to the new booking or order, depending on what you choose.
Customer email notifications:
With this option, you can easily set notifications to be informed about confirmed or requested bookings, as well as booking reminders.
WooCommerce Bookings has five automatic email alerts. You can edit all emails sent to customers at WooCommerce > Settings > Emails, which are listed as the following:
- Booking Reminder: Emails sent to the customer one day prior to their booking to remind them of an upcoming booking.
- Booking Confirmed: Emails sent when a customer confirms a booking.
- New Booking: Notification emails to the admin when a customer creates a new booking.
- Booking Notification: You can only send notification emails manually from WooCommerce > Bookings > Send Notification.
- Booking Cancelled: Emails sent when a customer cancels a booking.
Custom-tailored booking costs:
This option allows you to customize cost per booking, resource, person, or duration of the reservation.
If the booking is open for multiple persons at once, tick the Has persons checkbox. Once you click on the box, a new tab will appear like the following:
You can also set a minimum and maximum number for persons. The case is the same as duration, where the customer can type in a value on the front-end booking form if enabled.
The number of persons also has an impact on the following cost options:
If Multiple all costs by person count is enabled, all costs will be multiplied by the number of people the customer chose.
If Count persons as bookings is enabled, each person will count as a booking until hitting the max bookings per block above, which determines the upper limit for the number of persons allowed per block. Once it reaches the limit, booking will no longer become accessible.
The Persons tab also allows you to set different prices based on the person type. For instance, you would want to charge a different price for children or for seniors on a museum tour. To create different person types, check Enable Persons Type in the Persons Tab:
Once you tick this checkbox, you will be able to add various types of persons.
Give your Person type a name and set the fitting cost for the type. You can add a description for the person type, however, it is optional. You can also decide on a minimum and a maximum number for each person type.
For example, you could impose a requirement that at least one adult must be included for each booking while children are optional (minimum 0). If you leave “max” blank, there will be no other restrictions than those of the bookable product itself.
Booking confirmation controls:
With this option, you can create bookings immediately or send bookings to customers for approval.*
* There won’t be any invoice for bookings requiring approval until you confirm.
Control booking availability:
This option allows you to decide when booking is available to customers. You can easily control availability through the Availability tab. The first options let you define dates which are accessible to bookings:
Other notable features of WooCommerce Bookings include:
“Resource” per bookable product:
This extension has Bookable Resources, which can be reserved separately within a bookable product, for more flexibility. To open a new tab, check the Has resources box:
The following are two types of bookable resource that you can use:
- Customer defined – A booking form showing a list of resources that customers can select.
- Automatically defined – A resource which will automatically be assigned to a customer booking if available.
An example for a customer-defined resource would be room types, e.g. rooms with a single and double bed. On the other hand, an example of an automatically defined resource would be a hair salon; where the resources are staff and once an appointment is made, someone is going to be assigned to that booking.
After choosing the type of resources, you can give your resource a ‘label.’ This will then appear on the front-end of the booking form.
Resources can also be created globally to apply to multiple bookable products.
Define global availability for all bookable products.
Global availability rules are applicable to all bookable products in your store. Formulating these rules would be useful if you, for example:
- Have regular hours of availability (e.g. Monday – Friday, 8:00 a.m. – 6:00 p.m.)
- Need to block a specific date range for all products (e.g. Unavailable for Boxing Day)
- Are only available during specific seasons (e.g. Closed from November – March)
To set out a global rule, browse to Bookings > Global Availability.
Click on the Add Range button:
This will then add a row to the table:
Allow bookings to extend overnight or to the next day.
Create buffer periods between bookings:
Based on the amount of time unit (minutes, hours, days, months, etc.) set for the booking, you can make a specific period of time unavailable for anyone else to book after a confirmed booking. For example, if you offer appointments in the duration of 1 hour and wish to have a break of 1 hour between them, you can set a buffer period.
If you prefer to have a buffer before and after your appointments, check the Adjacent Buffering box. This option will add a time block both after and before each booking. Thus, setting a buffer period of one hour between each booking with Adjacent Buffering will result in a free 2-hour period between them.
Buffer periods can only be set in the same time unit chosen for time blocks. If you want to have a 30-minute buffer between your 1-hour bookings, make sure to use 60-min blocks instead of 1 hour.
Send custom email notifications to customers:
To give custom email notifications, go to Bookings > Send Notification. Then, a form similar to the following will appear:
You will then choose the suitable product, enter an email subject and content, and finally click Send Notification to email your customers. Any customer with an active booking of the selected product should be able to receive the email.
View bookings in a list or a calendar format:
If you click ‘view’ on a booking, it will redirect you to the Edit/View Booking page. This works the same as other admin pages like Edit Order, except it is for booking data:
You can easily edit and save these details when you finish. At this point, you should pay attention when making changes to the start and end date. In addition, you should make sure that the start date should always be more recent than the end date. It is also important to bear in mind that the customer will not receive an automatic email with these changes included.
To view under a calendar format, go to Bookings > Calendar. By default, this will show a monthly calendar with filter options at the top:
Here, you can click on the booking to see further details about the reservation.
Likewise, you can use the ‘day view’ link at the top right of the page to view all of the bookings in a day. When using the day view option, you can either click a booking to view/edit it or hover to view a summary of details.
For online businesses whose products are services or rentals, having an extension like WooCommerce Bookings for your store is definitely a necessity. I recommend WooCommerce Bookings to anyone who wishes to offer services and appointments to potential customers, as this is a powerful extension with many useful features that could help you manage your business successfully.