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:


https://cloudup.com/cgCgA42FcVu

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:


https://cloudup.com/ir_lPGZPgxS

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.


https://cloudup.com/cb5v3yo0UWN

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

GIF

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.


https://cloudup.com/cd4pD20X522

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

GIF

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.

8 Comments

  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.

    thanks
    C.

    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 http://wcdemo.com.

      Cheers,

  2. I’m desperate,
    how can i set a hotel with 3 different rooms that have different prices (independently one from each other?) i set them correctly with resources 3 kind of rooms but WC booking allows me to set a fixed prices as difference between the rooms (prices vary independently!
    Support say i must create a different product per room but it’s an horrible solution as user experience!!! Users would navigate into several pages to book.:(

    1. Hi Michele,

      Please refrain from swearing. I have edited your comment accordingly. I also don’t see a way without custom coding. You could try and add WooCommerce Product Add Ons to the mix. This will allow you to add more pricing rule variations, but the selection required will be difficult to setup.

  3. Hey,
    nice tutorial.

    I’ve the problem that I’ve different situation and discounts for products but I didn’t know how I can set this. Maybe you have a solution.

    For example.
    I’ve a boat for booking and its possible to book
    2h
    4h
    1 Day
    2 Day (MO-THU)
    3 Day (MO-THU)
    Mini-Weekend (SA-SU)
    Weekend (FR-SU)
    7Day

    all have different prices but actually I’m not able to display this.
    Do you have any tip for me?

    Greetings

  4. If I want to create bookings

    eg I want to offer a service where customers can book a service on a chosen day, but I don’t want to block out the chosen day

    e.g lets set 1000 bookings available per day (user does not get to choose a time) just the day

    can this be done? can you help do it for a fee?

    1. Hi Kevin,

      > eg I want to offer a service where customers can book a service on a chosen day, but I don’t want to block out the chosen day
      > (user does not get to choose a time) just the day

      For this I would set the bookable slot to 1 day.

      > e.g lets set 1000 bookings available per day

      For this I would set max bookings per slot to 1000.

Leave a Reply

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