How to allow for bulk discount on bookings

Pricing is $15 per hour. For times over 1 hour then it becomes $10 per hour – but customer need to be able to also book 1.5 or 2.5 hours.

The following settings will return this:

2 blocks (1 hour): $15
3 or 4 blocks (1.5 or 2 hours): $20
5 or 6 blocks (2.5 or 3 hours): $30

This is the setup:


### Please note that the block cost has been adjusted to 5, and each individual block count is being corrected through the base cost.

With a block cost of 5 you only need to adjust 2, 3 and 5.

1 block: unavailable, as the minimum amount of blocks to be booked is 2
2 blocks: 2×5 = 10, thus you need to add 5 to the base costs = 2×5 + 5 = 15
3 blocks: 3×5 = 15, thus you need to add 5 to get the 2 hour cost = 3×5 + 5 = 20 (2 hours)
4 blocks: 4×5 = 20, all good
5 blocks: 5×5 = 25, need to add 5 to get to 3 hours cost = 5×5 + 5 = 30 (3 hours)
6 blocks: 6×5 = 30, all good.

Using the base costs definitely reduces a lot of calculation, so this would be the way to go.

And these are the results on the front end:

1 hour:

1.5 hours

2 hours

2.5 hours

3 hours


Pre-selecting pricing options for bookable products

By default a bookable product requires the customer to add at least one person type and then select a date to book. It feels clunkly and doesn’t look very profesional.

Enter Product Add Ons. This additional plugin allows you to define product options including different pricing variations. To find more info about the extension, check out the documentation here:

And this is how it works in the back-end when creating a coaching product with different prices for different ticket types: medical students / juniors or Consultants:


This is how it looks on the product page (note that the end price is a combination of the product price PLUS the add-on price – so be clear of what you want to achieve).


If you then want to redirect the customer directly to your cart, instead of letting him wonder through your site, select the Redirect to cart option on the WooCommerce Settings > Products > Display page:


Now your customer can smoothly transition from their buying decision to the payment step.

Multiple resources for one booking


You are getting married. You want a huge letter display saying L-O-V-E on your wedding setting. Lucky for you, you can rent these letters individually.

Now, image you are the shop owner: you are offering letters for booking so that customers can spell their preferred word for a day. Using the booking extension, how can you set up your products to allow customers to choose the entire word instead of adding letters individually to your cart?

And how can you manage your stock of letters?

Even though you can’t assign multiple resources to the same booking, there are still a number of ways to set up your store in a way that your customers have a delightful shopping experience and you (kind of) are on top of your stock.

Option 1: Persons are letters

If you need to know the exact number of letters (and have some kind of stock management). “Persons as Letters”. The product would then look like this, and the customer can choose for each letter the exact number of letters he or she needs.

Advantage: there is no restriction as to the number of letters any one client can order AND you can restrict the number of letters available per day – this way you do have some kind of stock management (or at least, no overbooking).

(In this example I did not add all 26 letters – if you do, you might want to adjust your theme to organise the letters slightly differently).

This is the result:

booking with multiple resources 06

Once added to the cart, it looks like this:

booking with multiple resources 09

And you know exactly which letters have been ordered.

The setup in the backend looks like this (prices are defined only in the “persons” tab):

booking with multiple resources 10

The costs tab is only needed to define the “From $xxx” message

You’ll want to adjust the error message when no letters are selected. Currently it says “Persons are required” – you’d have to translate this to “letters are required”.

booking with multiple resources 08

Option 2: How many letters do you need

In this option the customer first decides the length of the desired word (yes, requires counting skills), books the number and then lets you know the word (hopefully) in the “order notes field”:

The end result is this:

booking with multiple resources 02

Note that the resources are created as letter dependent:
booking with multiple resources 01

The price depends on the resource (which depends on the number of letters).

The setup in the resource tab looks like this:

booking with multiple resources 04


The user only chooses the **number** of letters, but you don’t know yet which letters they want. Thus the advice to please spell it out in the checkout form under “Order Notes”.

booking with multiple resources 05

You might want to change the standard “notes about your order” to something more fitting though.

Option 3: Spell it out IN the order

To make this option work, you’ll need the Product Add-On plugin.

Set up the product just like in option 2 and add one custom field for the word to be spelled out.

This is the result:

booking with multiple resources 12

And this is how you add the additional field in the “Add-Ons tab”:

booking with multiple resources 13



Now you just need to choose which option works best for you and your customers 🙂

Increasing booking costs based on # of people

Use case: A tourist guide in training offers weekend tours to discover the beautiful Born neighbourhood in Barcelona. To quickly get as much experience as possible, he offers very competitive rates, based on the number of people that attend:

The basic price for 1-5 people is $10 in total. Each additional person pays $3 extra.

The booking setup thus has to take into account:

  • Price for 1-5 people: $10 (no matter whether it’s 1 or 5 people)
  • Price for 6 people: $10 + $3 = $13
  • Price for 7 people: $10 + (2 x $3) = $16
  • Price for 8 people: $10 + (3 x $3) = $18
  • Price for 16 people: $10 + (11 x $3) = $43

In order to add this option to your bookable product you need to enable “Has persons”.

Then, please set up the tab “costs” as following:

Base cost: 10
Then add ranges to define the different prices depending on the Person count. The first row would look like this:
Person count | 1 to 5 | Base cost + 0 | Block cost + 0
Person count | 6 to 6 | Base cost + 0 | Block cost + 3
Person count | 7 to 7 | Base cost + 0 | Block cost + 6
Person count | 8 to 8 | Base cost + 0 | Block cost + 9

Add as many rows as needed (up to 16 in this case) adjusting the amount of money to be added to the base price of 10 dollars.

It would then look like this:

incrementing prices per person

Variation: fixed prices depending on the number

Another guide offers specialized tours of Sagrada Familia for Japanese tourists. His price setup is as follows:

Groups of 1-5 people pay $100 in total.
Groups of 6-10 people pay $200 in total.

Again, please check “add persons” to the booking.

This time, however we are going to work with the “base costs” in the costs tab:

Base cost: 100

Then add ranges to define the different prices depending on the Person count. The first row would look like this:
Person count | 1 to 5 | Base cost + 0 | Block cost + 0
Person count | 6 to 10 | Base cost + 100 | Block cost + 0

Please add as many rows as needed adjusting the amount of money to be added to the base price of 100 dollars.

The setup will look like this:


Happy booking