Bookings Use Case: Change Price of Booking Based on Duration of Stay

This scenario will walk you through how to use WooCommerce and WooCommerce Bookings to set up a bookable product where customers get a discount the more days they reserve.

If you haven’t already, we suggest reading Costs for Bookable Products to have a better understanding of the steps we’ll take to configure this scenario.

Scenario and Requirements

↑ Back to top

A hotel/property rental agency wants to offer rooms that are priced based on duration of a stay. A longer stay gets a discounted rate. Here’s how they’d like to configure the pricing:

  • If customer is booking only 1 day, then price is $30 per day.
  • If customer is booking 2-4 days, then price is $27 per day.
  • If customer is booking 5-8 days, then price is $24 per day.

To configure this scenario, you’ll need WooCommerce Bookings installed on your WooCommerce store.

Note: If you are using WooCommerce Accommodation Bookings, this configuration will not work.

Setup and Configuration

↑ Back to top

To configure a room booking that is discounted based on the number of days a customer books, follow these steps:

  1. Create the bookable product – create a new product and select “bookable product” as the product type.
  2. Tick the following boxes:
    • Virtual – This removes the shipping options for any bookable product that does not need to be shipped. We’re configuring a room rental product so we don’t need to ship anything.
    • Has Persons (optional) – This adds a selector on the booking form on the frontend of your store that asks customers to enter the amount of people the booking is for. This is helpful if the property has a limit on the amount of people that can safely stay in the property at one time.
  3. Configure the General tab –
    • Set Booking duration – Use the dropdown menus and entry field to set this to “customer defined blocks of” 1 Day.
    • Set min/max duration – Set minimum duration to 1 (day) and Maximum duration to 8 (days)
    • Configure other product data based on your needs (confirmation policy, cancellation policy, calendar display mode) . For our example, we’ll leave everything unchecked.
General tab settings: 1. Customer Defined Blocks of 1 Day, 2. Minimum duration of 1 day, 3. Maximum duration of 8 days.
  1. Click the Costs tab, leave Base Cost and Block Cost set to 0 .
  2. Click the Add Range button (once for each rule)at the bottom of the page and add three range rules:
    • In the first rule, set the range as 1 to 1 and the Block cost = 30.
    • In the second rule, set the range as 2 to 4 and the Block cost = 27.
    • In the third rule, set the range as 5 to 8 and the Block cost = 24

The settings will look like this:

The image illustrates how to set up the three range types and their block costs.
  1. Click Publish (or update) in the top right of the product settings to publish (or save) your bookable product’s settings.

Customer View

↑ Back to top

Now that the bookable product is configured, let’s look at how it work for customers.

Customers will choose a start date on the calendar and then choose the number of days of their stay. The cost of the booking determines the discount they receive and how much their booking total is. In the gif below, you’ll notice the price changing based on the number of days that a customer is booking:

Here are a few examples of the calculations (shown in the gif) based on the cost settings that we configured earlier:

  • 1 day ( * $30/day) = $30
  • 4 days ( * $27/day) = $108
  • 6 days ( * $24/day) = $144

Questions and Support

↑ Back to top

Something missing from this documentation? Do you still have questions and need assistance?

  • Have a question about a specific extension or theme you’d like to purchase? Click here.
  • Already purchased and need some assistance? Get in touch with a Happiness Engineer via the WooCommerce.com Support page and choose this extension name from the “I need help with” dropdown.
Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.