Search the site:

Charge different hourly rates in WooCommerce Booking and Appointment Plugin

When you want to go to the movies and if you are booking a ticket online, the first thing you do is choose a suitable show according to your convenience. What do you notice then?

The prices differ for every show. The tickets are cheaper for morning shows and the rates keep on increasing till the last show of the day. There are various types of bookings which will have varying prices according to the time you place that booking for.

In this post we are going learn how to charge different hourly rates in WooCommerce with the WooCommerce Booking & Appointment Plugin.

Different hourly rates in WooCommerce Booking & Appointment Plugin: Admin Experience

The first step will be creating your bookable product. You can do that from the Products -> Add Product link. On the same page, you would also find the Booking meta box that allows you to setup your bookable product. Then you have to do some general booking settings. I have taken the example of an online movie booking system, so that customers can buy tickets for different movie shows at different times & with different booking costs.

Under the “Booking options” tab, I have selected the Enable Booking Date. The option Lockout date after X orders lets you give a maximum number of bookings you can do on a particular day. I have set that value as “100”. You can change it as per your requirement. Generally for movie bookings, the lockout depends on the capacity of the movie theatre.

Under Select Booking Method, I have enabled “Recurring Weekdays”. When you select Recurring Weekdays, it means the selected weekdays will be available for booking every week & they will be repeated for the number of dates you have selected to be available to be booked.

Hourly Rates in WooCommerce - General Booking Settings
General Booking Settings

Once this is done, there is an option called Enable Booking Time in the “Booking Options” tab. You need to enable this in order to add movie showtimes. The Lockout time slot after X orders lets you give a number for maximum bookings (total capacity of the movie hall) that can be booked in a particular show. Once the threshold is reached, it will lock the show so that it is unavailable for further bookings.

Hourly Rates in WooCommerce - Enable Booking Time
Enable Booking Time
Hourly Rates in WooCommerce - Creating Time slots
Creating Time slots

The Price for the time slot field will let you add different prices for each movie show. I have added different prices for different movie shows. You just have to set the From time & To time for each show and you are done.

The prices for different shows are as follows:

  • 9 am to 11.30 am : £80
  • 12 pm to 2.30 pm : £100
  • 3 pm to 5.30 pm : £120
  • 6 pm to 8.30 pm : £150
  • 9 pm to 11.30 pm : £150

You can add new movie shows by clicking on the “Add Time Slot” button. Once you have added your show times, you will need to click on the “Update” button.

All your time slots will be displayed in the Manage Dates, Time Slots tab. If you had selected 7 weekdays as shown in the screenshot, then all the time slots that were created will be displayed for each weekday separately. So in our case, a total of 35 time slots were created, 5 time slots for each weekday (Monday to Sunday) because movies run all week long.

Hourly Rates in WooCommerce - Manage booking dates and time slots
Manage booking dates and time slots

You can delete a time slot by clicking on the red cross icon. Currently we do not have the ability to edit a time slot. That will be added very soon in the plugin.

A booking system must allow you to specify how much time in advance you want the customer to book the product.

The WooCommerce Booking & Appointment plugin allows you to do that by specifying the number of hours in the Advance Booking Period field. It is present in the Bookable Time Period tab. Usually, you can book movie tickets an hour or 45 minutes before the show timing if the seats are available. Hence, I have set the value as 1 hour.

The Number of Dates to choose lets you determine the maximum number of days from today which you can select to make delivery available. In some cases, this could be a month (30 days) or even a year (365 days). I have set it to 7 days because the duration of the movie lasting in a multiplex can be for a week to 15 days tentatively.

Hourly Rates in WooCommerce - Advanced booking settings
Advanced booking settings

Since this is a “Simple Product”, there aren’t any specific settings under the product data section. You just have to enter the basic details like the Regular price and Sale price.

Hourly Rates in WooCommerce - Product Settings
Product Settings

Since you are capturing the movie show times, you definitely want to change the labels on the frontend accordingly. You can do that from Booking -> Settings -> Booking Labels. There are labels on product page, order received page, email notifications, cart and checkout page, so you have to make sure that you don’t miss out on any of these. Make changes wherever necessary and once that is done click on the “Save Changes” button.

Hourly Rates in WooCommerce - Changing labels
Changing labels

We have changed the field label to “Select Date” & “Select Time” on the page where the booking is being captured. On other pages like cart & checkout, we will simply display them as “Date” & “Time”.

Once you have completed all these steps, unless you don’t have anything more to add, your WooCommerce Bookable product for taking online movie bookings is ready.

Different hourly rates in WooCommerce Booking & Appointment Plugin: User Experience

This is how the booking appears on the frontend when the product page is loaded & a date is selected.

Hourly Rates in WooCommerce - Show timings
Show timings
Hourly Rates in WooCommerce - Frontend

Once you select the show, the “Add to Cart” button is visible. When you click on that button, the order is added to your cart and there is a button to “View your Cart”. On clicking that, you are redirected to the cart page which will show the movie details.

Hourly Rates in WooCommerce - Cart Page
Cart Page

When on the cart page, unless you don’t want to update your cart, you can go to the checkout page by clicking on “Proceed to checkout” button.

The checkout page will show the movie details and the total amount for your order. You can place your order if everything seems fine. Checkout page gives you a preview of the actual order. Please ensure you check everything and then click on the “Place Order” button.

Hourly Rates in WooCommerce - Checkout Page
Checkout Page

After placing your order, the final details are shown on the Thank You page. Email notifications are sent to the customer and the administrator with the details.

Hourly Rates in WooCommerce - Thank You Page
Thank You Page
Hourly Rates in WooCommerce - Email

Once the order is placed, the available spots for that particular show automatically reduce by the quantity that was chosen in the above order, which is 1.


This setup is exactly similar to Setting Appointments with WooCommerce, except that we added different prices for the time slots. Charging different hourly rates is an important part of bookings and appointments because a particular booking won’t always be available for the same price. Live shows, plays & movie tickets have multiple show timings and hence varying prices. Same for appointments over weekends too.

It is also possible to use this setup with WooCommerce Variations. The above example was for Simple Products only.

Since there was a need to create time slots, changing the booking labels and rest of the general settings too, for the first time it would take around 30 minutes to complete everything.

If you haven’t bought the plugin yet, you can purchase it from here. [edit]

Browse more in: Documentation, How Tos, Tutorials, WooCommerce, WooCommerce Booking & Appointment, WordPress
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
from purchased

Subscribe for more offers

Would love your thoughts, please comment.x