How do I add extra services (cleaning fee, breakfast, parking)?
WP Booking System lets you add optional extras and mandatory fees directly to your booking form.
For example, you can charge for:
- cleaning;
- breakfast;
- parking;
- airport transfers;
- extra beds;
- bicycle rental;
- pet fees;
- additional guests;
- other services or booking extras.
These are created using Pricing Form Elements in the Form Builder. Each extra can be charged once per booking or based on the duration of the booking.
Enable pricing first
Pricing Form Elements are only available when pricing is enabled in WP Booking System.
After enabling pricing, go to:
WP Booking System → Forms
and open the form you use for bookings.
In the Form Builder, you will see a section called Pricing Form Elements.
These fields can add charges to the booking total.
Which pricing field should I use?
WP Booking System provides several pricing fields for different types of extras.
Product Field
Use a Product Field for a mandatory charge that should always be included.
The field is hidden from the customer as an input, but its price is automatically added to the booking.
Typical uses include:
- cleaning fee;
- booking fee;
- administration fee;
- mandatory service charge.
For example:
Cleaning Fee → €50
with:
Price Calculation → Per Booking
adds €50 once to every booking using that form.
Product Checkbox Field
Use a Product Checkbox Field when customers may select one or more optional extras.
For example:
- Breakfast → €12
- Parking → €8
- Airport transfer → €40
Customers can select any combination of the available options.
This is usually the best field when several independent extras are available.
Product Radio Field
Use a Product Radio Field when the customer must choose one option from a list.
For example:
- No breakfast → €0
- Continental breakfast → €10
- Full breakfast → €15
Only one option can be selected.
Product Dropdown Field
A Product Dropdown Field also allows the customer to select one option.
For example:
Parking
- No parking → €0
- Outdoor parking → €5
- Garage parking → €10
Use a dropdown when it provides a cleaner form layout than radio buttons.
Product Number Field
Use a Product Number Field when the customer should enter a quantity.
For example:
Number of extra beds
Price:
€20
If the customer enters:
2
the field can add:
2 × €20 = €40
to the booking.
This is useful for extras whose quantity can vary.
Add a mandatory cleaning fee
For a cleaning fee that applies to every booking, use a Product Field.
Open:
WP Booking System → Forms → your form → Form Builder
and add a Product Field.
Configure it as:
Label → Cleaning Fee
Price → €50
Price Calculation → Per Booking
Because Product Fields are hidden pricing fields, customers do not need to select or approve the fee separately. It is automatically included in the total.
The cleaning fee will appear as a line item in the booking’s pricing breakdown.
Add an optional extra
For an extra that customers can choose, use one of the selectable pricing fields.
For example, add a Product Checkbox Field called:
Optional Extras
with options such as:
- Breakfast → €12
- Parking → €8
- Late checkout → €25
The booking total updates according to the options selected by the customer.
Charge an extra once per booking
Each Pricing Form Element includes a Price Calculation option.
Choose:
Per Booking
when the charge should only be applied once.
This is appropriate for extras such as:
- cleaning fee;
- airport transfer;
- administration fee;
- key delivery;
- one-time pet fee.
For example:
Cleaning fee → €50 per booking
A one-night booking and a seven-night booking would both receive the same €50 cleaning charge.
Charge an extra based on booking duration
Choose:
Price Calculation → Per Day
when the extra should be multiplied according to the booking duration.
This is useful for services such as:
- parking charged for the duration of the stay;
- breakfast;
- equipment rental;
- extra bed;
- pet charges calculated for the duration of the booking.
For accommodation bookings using Split selection, test the pricing with your actual booking setup to ensure the calculation matches how you want to charge for the stay.
Charge an extra per person
Pricing fields also have a Multiplication option.
This allows the price of one pricing field to be multiplied by the value of another form field.
For example, suppose breakfast costs:
€10 per person
and your form contains a field called:
Number of Guests
You can set the Breakfast pricing field’s:
Multiplication → Number of Guests
If the booking contains 3 guests:
€10 × 3 = €30
If the Breakfast field is also configured to calculate per day, the charge can additionally vary according to the booking duration.
This is useful for services priced according to both the number of guests and the length of the booking.
Add breakfast as an optional extra
One possible setup is:
Breakfast
Add a Product Checkbox Field containing:
Add breakfast → €10
Set the calculation according to how you charge for breakfast.
If breakfast costs €10 per person, add a Number of Guests field to the form and use that field as the pricing field’s Multiplication value.
This allows the total to react automatically to the booking details.
Add optional parking
If parking is optional, you could use a Product Checkbox Field:
Parking → €10
Set:
Price Calculation → Per Booking
if €10 covers the entire booking.
Or use:
Price Calculation → Per Day
if parking is charged according to the duration of the booking.
If several parking options are available, use a Product Dropdown or Product Radio Field instead.
For example:
- No parking → €0
- Outdoor parking → €5
- Garage parking → €10
Add a quantity-based extra
If customers can reserve several of the same item, use a Product Number Field.
For example:
Number of bicycles
Price:
€15
If the customer enters:
3
the booking receives:
3 × €15 = €45
You can also configure whether this amount applies per booking or according to booking duration.
Display the price breakdown
Add a Total Field to the booking form.
The Total Field displays the booking’s pricing information similarly to a shopping cart.
It can show:
- calendar price;
- selected extras;
- mandatory fees;
- taxes;
- discounts;
- total amount.
This makes it clear to customers how the final booking price was calculated.
For example:
Accommodation: €600
Cleaning Fee: €50
Parking: €30
Breakfast: €60
Total: €740
Displaying extras separately is particularly useful for mandatory fees, because customers can see exactly what they are being charged for.
Add extras without accepting online payments
Yes.
You can use pricing and extras even if customers pay by:
- Bank Transfer;
- Payment on Arrival.
You do not need Stripe, PayPal or another online gateway just to calculate booking prices.
However, if you want WP Booking System to create a payment record and save the pricing information with the booking, make sure the form contains a Payment Method Field.
WP Booking System only creates the payment and stores the calculated prices in the payment data when the Payment Method Field is included in the form.
Add the Payment Method Field
The Payment Method Field displays the payment methods enabled on your website.
WP Booking System includes the offline methods:
- Payment on Arrival;
- Bank Transfer.
Additional payment methods can be added through payment add-ons such as Stripe, PayPal, Mollie, GoPay or WooCommerce Checkout.
Even if customers do not pay online, adding the Payment Method Field allows the booking’s payment and pricing information to be recorded correctly.
Use different extras for different properties
Extras belong to the booking form, not directly to the calendar.
This means different forms can contain different extras.
For example:
Apartment form
- Cleaning Fee → €40
- Parking → €10
Villa form
- Cleaning Fee → €100
- Pool Heating → €150
- Airport Transfer → €50
Embed the appropriate form with each calendar.
This is often the simplest approach when different properties have substantially different pricing options.
Use conditional logic for extras
Pricing fields support Conditional Logic.
This allows you to show or hide an extra depending on another form field.
For example, your form could ask:
Are you bringing a pet?
If the customer selects:
Yes
you can display a pricing field for:
Pet Fee → €30
You could also use conditional logic to show different extras depending on:
- accommodation type;
- number of guests;
- selected service;
- another form selection.
This helps keep the booking form clean by only showing relevant options.
Use a custom label in the price breakdown
Pricing fields include a Custom “Total” Label option.
This allows you to control how the item appears in the Total Field.
For example, the form option could be:
Yes, I would like parking
while the pricing table simply displays:
Parking
This makes the final booking breakdown easier to read.
Can I include the cleaning fee in the base price instead?
Yes, but in most cases a separate Product Field is clearer.
If you include a mandatory cleaning fee in the nightly or daily calendar price, customers see only the final price.
Using a Product Field instead displays the cleaning fee separately in the price breakdown.
For example:
Accommodation → €600
Cleaning Fee → €50
This can make your pricing more transparent.
Whether you display a fee separately or include it in your advertised price should also follow the pricing and consumer-protection requirements that apply to your business and market.
Can I add an extra with limited availability?
Yes, but if the extra itself has a limited quantity, use the Inventory add-on rather than only a normal pricing field.
For example, suppose you rent:
- a villa;
- 10 bicycles.
You can create a separate calendar for the bicycles with an inventory of 10.
Then add an Inventory Field to the villa booking form and set the bicycle calendar as its Inventory Source.
Customers can choose how many bicycles remain available for their booking dates.
To charge for them, add a Product Field and use the Inventory Field as its Multiplication source.
This lets WP Booking System manage both:
- the quantity available;
- the price of the extra.
Test your extras before publishing
After adding pricing fields, test the booking form from the front end.
Check several scenarios.
Test optional extras
Select and deselect each extra and confirm that the total changes correctly.
Test different booking lengths
Test a short and long booking to verify that fields configured Per Day behave as expected.
Test quantities
If you use Product Number Fields or Multiplication, test several quantities.
For example:
- 1 guest;
- 2 guests;
- 4 guests.
Test the completed booking
Submit a full test booking and open it in the WordPress dashboard.
Check that:
- selected extras are stored correctly;
- the pricing breakdown is correct;
- the payment amount is correct;
- the confirmation email contains the information you expect.
If you accept online payments, also confirm that the amount sent to the payment gateway matches the Total Field.
Which field should I use?
For most booking extras:
- mandatory fixed fee → Product Field;
- multiple optional extras → Product Checkbox Field;
- one choice from several options → Product Radio or Product Dropdown Field;
- customer-entered quantity → Product Number Field;
- limited quantity with actual availability → Inventory Field plus a pricing field;
- display the complete price → Total Field.
Using the field designed for each purpose keeps the booking form simpler and ensures the booking total is calculated correctly.