How to setup WooCommerce Bookings with multiple booking durations, fees and varying costs

Here is a use case that frequently comes up for hotels and room rentals using WooCommerce Bookings.

The requirements


  1. “Booking should be done 48 hours in advance, hence there shouldn’t be rooms available for same/next day booking.”
  2. The pricing structure and therefore booking duration is divided into three types:
    12h (4h) block stay
    Overnight stay
    Day stay
  3. Prices increase on weekends.
  4. Each booking must add the reservation fee

I played through various scenarios where I also thought of using WooCommerce Product Add ons at one point. In the end I managed to do it using WooCommerce Bookings only.

The solutions

Lets go through your requirements one by one:

Booking should be done 48 hours in advance, hence there shouldn’t be rooms available for same/next day booking.

For this requirement I set “Minimum Block bookable” to 2 days in the future:

This disallows bookings on the same / next day.

The pricing structure is broken into some types:
– 4 hour blocks with different weekday/FRI-SAT/sunday prices
– Overnight with diff weekday/FRI-SAT/sunday prices : 8pm – 1pm
– 12 hour period with weekday/FRI-SAT/sunday prices : 3pm to 1pm

The check in times for both day and overnight are set. I did not know if the 12h / 4h blocks have flexible check in or not. For managing this I did set it deliberately to 12pm. In order to reflect different check in times, I set the bookable slot to 1 hour and then used availability rules to knock out undesired times. The concept in full is explained in my other blog post here.

Here is what I set:

This produces the following times for each day:

12pm – Check in time for hours stay
3pm – Check in time for day stay
8pm – Check in time for overnight stay

Prices increase on weekends.
Each booking must add the reservation fee

The cost tab adds reservation fees and raises the price on weekends. The initial price is the lowest, for this suite: 140. The cost rules add to the price according to your spreadsheet.

Clicking through the times during the weekend and on weekends now display correctly following the given price rules.


Open GIF in new tab.

I expected that one booking per day should block the whole day for the suite, so I added adjacent buffer of 8 hours.

This effectively blocks the whole day, if any time slot is booked for that day.


Open GIF in new tab.

Last but not least I added some info to the product page to explain the concept and checkout times.

That is it.

This realises a WooCommerce Bookings product for one room with varying check in times, varying booking durations along with the required price structure and reservation fees.

Let me know any questions in the comments and all the best for your WooCommerce Bookings scenario.

Related Posts

Powered By Related Posts for WordPress


  1. Hi, do you think i can use this plugin also for a site with multiple villas? So basically instead of booking rooms they are booking villas.


    1. Hi Camilla,

      Yes, that should work fine. But depending on your requirements can also be tricky. These things are best tested out. You can setup a free test site at


Leave a Reply

Your email address will not be published. Required fields are marked *