Change Price of Booking Based on Duration of Stay

You are here:


A hotel or property rental agency wants to offer rooms that are priced based on duration of stay. A longer stay gets a discounted rate.

Base price is 30USD.

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


Products Used

Setup and Configuration

In this example, each day would be considered a block. The Block Cost would equal to the cost per block (or day in this case) within that block range and its preceding blocks.

Create Product

We’ll need to first create a Bookable Product.

  1. In the sidebar of your WordPress Admin, click on Products.
  2. Click on the Add New button on the top.
  3. Under Product data select Bookable product.
  4. To the side of the Product data box you will then tick the checkboxes for Virtual and Has Persons.
  5. In our example we have enabled Pass shipping/tax. You do not need to do this step unless you wish to pass these costs off to the Product Vendor.

General Tab

  • Product is Virtual (no need to ship anything).
  • product has Bookings duration set to FixCustomer defined blocks of 1 day(s).
  • Product has Minimum duration set to 1.
  • Product has Maximum duration set to 8.


Costs Tab

Booking 1 day will cost $30/per day. Booking 2-4 days will cost $27/per day and booking 5-8 days will cost $24/per day. So you pay less per day the more days you book.

  • Product has Base Cost set to 0.
  • Product has Block Cost set to 0


Please note: This set up does not work with WooCommerce Accommodation Bookings.

Was this article helpful?
Dislike 0
Views: 12