Offer a lower daily price when customers book for longer. This example uses one-day blocks and three pricing rules to discount bookings of two to eight days.
Scenario and requirements
↑ Back to topA cabin rental offers these daily rates in US dollars:
- 1 day: $30 per day.
- 2–4 days: $27 per day.
- 5–8 days: $24 per day.
The booking’s total duration determines the daily rate for every day booked. For example, a four-day booking costs 4 × $27 = $108.
Before you begin, activate WooCommerce and WooCommerce Bookings, and sign in with permission to edit products. This example uses a Bookable product with daily blocks. For overnight stays with check-in and check-out times, follow the Accommodation Bookings guide instead.
Set up duration-based prices
↑ Back to top- Go to Products > Add new product, enter a name, and select Bookable product in Product data. To change an existing product, open it from Products > All Products.
- Select Virtual because this rental does not require shipping. Leave Has persons and Has resources unchecked for this example.
- In General, set Booking duration to Customer defined blocks of 1 Day(s). Set Minimum duration to 1 and Maximum duration to 8.
- Leave Enable Calendar Range Picker? unchecked so customers enter the number of days. For the calendar shown below, select Calendar always visible as the Calendar display mode.
- Open Costs. Set Base cost and Block cost to 0, and leave Display cost blank.
- Select Add Range three times. In each row, select Block count as the Range type. Leave the row’s Base cost at + 0 and select = for its Block cost operator. Enter these ranges and prices:
| From | To | Block cost |
|---|---|---|
| 1 | 1 | = 30 |
| 2 | 4 | = 27 |
| 5 | 8 | = 24 |

- Select Publish for a new product or Update for an existing product.
Check the customer price
↑ Back to topOpen the product on your store. Enter a duration and select an available future start date. For this setup, the booking cost should be $30 for one day, $54 for two days, $108 for four days, $120 for five days, and $192 for eight days. A duration above eight days should show a maximum-duration message.

If the price does not match
↑ Back to top- Confirm that every rule uses Block count, rather than Range of days, which matches days of the week.
- Check that the ranges do not overlap and that each Block cost operator is =. All matching pricing rules apply, so review any additional rows.
- Check that the product’s Base cost and Block cost are 0. Review any person or resource costs if you enabled those features.
- If you cannot select a date, check Availability and choose dates with enough availability for the full duration.
Questions and support
↑ Back to topSomething missing from this documentation? Still have questions and need assistance?
- If you have a question about a specific extension or theme you’d like to purchase, contact us to get answers.
- If you already purchased this product and need some assistance, get in touch with a Happiness Engineer via our support page and select this product’s name from the Product dropdown.