Help Center

Documentation Menu

How do I add extra services (cleaning fee, breakfast, parking)?

You add extra services by using pricing fields in your booking form, so customers can select add-ons (like breakfast or parking) and the total updates automatically. For mandatory fees (like a cleaning fee), you either include it in the base price or add a required pricing field that applies per booking. The key decisions are whether the extra is optional or mandatory, and whether it should be charged per booking (one-time) or per day/night (multiplied by the selected date range).

On this page

  1. What “extra services” means
  2. What you’ll need
  3. Choose the right extra type (optional vs mandatory)
  4. Step 1: Enable pricing and confirm totals are shown
  5. Step 2: Add an optional extra (breakfast, parking)
  6. Step 3: Add a mandatory fee (cleaning fee)
  7. Step 4: Decide per booking vs per day/night
  8. Step 5: Test the total and the checkout flow
  9. Common issues (and quick fixes)
  10. Best practices (UX + conversions)
  11. Mini FAQ

What “extra services” means

  • Optional extras: customers choose them (breakfast, parking, airport transfer, late check-out).
  • Mandatory fees: always apply (cleaning fee, service fee, local fee).
  • Per booking extras: charged once (cleaning fee, key pickup fee).
  • Per day/night extras: multiplied by the selected range (breakfast per day, parking per night).

What you’ll need

  • WP Booking System installed and activated
  • A calendar embedded with a booking form (example: [wpbs id="1" form_id="1"])
  • Pricing enabled so the system can calculate totals
  • (Optional) Payments enabled if you want customers to pay online

Choose the right extra type (optional vs mandatory)

Before adding fields, decide how each extra should behave, because this affects which field type you use and how you calculate price.

  • Breakfast: usually optional, often charged per day/night
  • Parking: optional, can be per day/night or per booking
  • Cleaning fee: usually mandatory, almost always per booking (one-time)

Tip: If something is mandatory, it is often clearer to include it in the price breakdown as a separate line item, not hide it inside the nightly rate.

Step 1: Enable pricing and confirm totals are shown

Extras only work properly when pricing is enabled and the customer can see a calculated total. First confirm your booking page shows a total amount for a selected date range, then add extras.

  1. Make sure your calendar has a base price set (so totals are not zero).
  2. Open your booking page and select dates to confirm a total price is calculated.
  3. If you use online payments, confirm your payment field is present on the form and the amount matches the calculated total.

Step 2: Add an optional extra (breakfast, parking)

Optional extras should be selectable by the customer, so you typically add a pricing field that uses checkboxes (multiple extras allowed) or a dropdown/radio (one choice allowed).

Option A: Checkboxes (multiple extras)

  1. Go to WP Booking SystemForms.
  2. Edit the form used on your booking page.
  3. Add a Pricing field and choose a checkbox-style field if you want multiple selections.
  4. Add options like “Breakfast” and “Parking” and assign a price to each option.
  5. Save the form.

Example setup idea: Breakfast (+10) and Parking (+5) as separate checkbox options, so customers can select one or both.

Option B: Dropdown or radio (one choice only)

  1. Add a Pricing field that uses dropdown or radio options.
  2. Create options like “No breakfast (0)”, “Breakfast included (+10)”.
  3. Save the form.

This is useful when you want a single selection and you do not want customers to stack multiple options.

Step 3: Add a mandatory fee (cleaning fee)

For a cleaning fee, you usually want it to always apply and be charged once per booking. You have three practical approaches, depending on how you want it displayed.

Approach A: Include it in the base price (simplest)

  • Increase your nightly/daily base price so it includes cleaning.
  • Use this only if you do not need a separate line item in the price breakdown.

Approach B: Add a required pricing field (recommended for transparency)

  1. Edit your booking form under WP Booking SystemForms.
  2. Add a Pricing field called “Cleaning fee”.
  3. Add one option (for example: “Cleaning fee”) and set its price.
  4. Make it required or set it as preselected so it always applies.
  5. Set price calculation to apply per booking (one-time).
  6. Save the form.

Approach C: Use a fixed fee only on specific calendars

  • If only some rooms have a cleaning fee, use a separate form for those rooms and embed that form only on those booking pages.
  • This keeps the customer experience clean and avoids complicated “if/else” logic in the form.

Step 4: Decide per booking vs per day/night

Most mistakes happen here, because the same extra can be interpreted differently. Choose the calculation that matches how you charge in real life.

  • Per booking: cleaning fee, admin/service fee, key handover fee
  • Per day/night: breakfast, parking (if you charge per night), extra bed (if charged per night)

Tip: If you charge breakfast “per person per day”, a simple approach is to offer options like “Breakfast for 1 (+X)”, “Breakfast for 2 (+2X)”, “Breakfast for 3 (+3X)” so customers pick the correct one, then set that option to calculate per day/night.

Step 5: Test the total and the checkout flow

After adding extras, test with several booking ranges to confirm the math is correct and the customer sees a clear breakdown.

  1. Open the booking page in an incognito/private window.
  2. Select a 1-night range and toggle extras on/off to confirm the total changes correctly.
  3. Select a longer range (3–7 nights) and confirm per day/night extras multiply correctly.
  4. If you accept payments, complete a test booking and confirm the charged amount matches the total.
  5. Check the booking details in the admin area to confirm the selected extras are stored with the booking.

Common issues (and quick fixes)

Extras do not change the total

  • Confirm you used a pricing field (not a normal checkbox/text field).
  • Confirm pricing is enabled and a base price exists so totals can be calculated.
  • Clear cache and test again in an incognito/private window.

Cleaning fee is multiplied by nights (but I want it once)

  • Set the cleaning fee field to calculate per booking (one-time), not per day/night.
  • If you cannot set it as one-time in your setup, use the “include in base price” approach.

Breakfast should be per night, but it stays fixed

  • Set the breakfast extra to calculate per day/night.
  • Retest with a 1-night and a 3-night range to confirm it multiplies.

Customers are confused about what they selected

  • Rename options so they are explicit (example: “Parking (per night)” or “Breakfast (per day)”).
  • Add one short sentence above the extras field explaining how it is charged.

Best practices (UX + conversions)

  • Place extras under the date selection but above the payment section so customers see the total update before paying.
  • Label extras with how they are charged (per booking vs per night) to reduce support emails.
  • Keep extras short and relevant; too many options reduces conversions.
  • If extras differ per room, use separate booking pages (and forms) per room to keep things clear.
  • Show a clean price breakdown so customers understand base price + extras + fees.

Mini FAQ

Should cleaning fee be optional or mandatory?

In most rental businesses it is mandatory, so it should either be included in the base price or added as a required one-time fee per booking that the customer can see clearly.

Can I charge breakfast per night?

Yes, set breakfast as an optional pricing extra and choose a per day/night calculation so it scales with the selected date range.

Can I add extras without online payments?

Yes, extras can still be included in the total even if customers pay later by bank transfer or on arrival, as long as pricing is enabled and the form records the selection.

Was this article helpful?

Yes No

We're sorry to see this article wasn't as helpful as we hoped it would be. Please let us know what you were looking for so that we can improve this documentation page.

Full CTA BG
Is WP Booking System a good fit for you?

Tell us about your business activity & plugin requirements and we'll let you know if WP Booking System is right for you.

Have a support question? Please use this form instead.