Skip to main content

Product Add-ons

Product Add-ons is included with WooCommerce Appointments. Add fields to the booking form so customers can pick extras, extend duration, or provide information — with optional price and duration adjustments.

Before you begin

How it works

Add-ons appear on the appointable product booking form (and in the admin appointment panel create flow). Each field can adjust price, duration, or collect data only. Duration add-ons change which slots are available — the engine checks base duration + add-on duration.

What you need

  • An appointable product
  • Availability that covers extended durations when using duration add-ons

You are ready when

  1. ✅ Add-on fields appear on the storefront booking form
  2. ✅ Price and duration totals update when options are selected
  3. ✅ A test booking with add-ons shows values on the order and appointment

Field types

TypeUse for
Dropdown / radio / imagesSingle choice; each option can have price and duration
CheckboxesMultiple selections; per-option price and duration
Short / long textCustomer input; optional validation (letters, numbers, email)
File uploadDocuments or photos
Customer defined priceTips, donations — min/max limits
QuantityCount-based options
Date pickerRelated dates or deadlines
HeadingVisual separator (no input)

Product add-ons tab

Add-on type selection

Add-ons on frontend

Product-level add-ons

  1. Edit an appointable product → Add-ons tab
  2. Click Add field and choose a type
  3. Configure:
    • Title — label on the form
    • Title format — label, heading, or hide
    • Description — optional help text
    • Required — mandatory before booking
    • Options — for choice fields: label, price, duration per option

See Appointable product — Add-ons for common display options (Hide duration label, Show before appointment form, etc.).

Global add-ons

Reusable groups for multiple products:

  1. Products → Add-onsAdd Group
  2. Set Name, Priority, and Product Categories (or all)
  3. Add fields (same types as product add-ons)

On each product's Add-ons tab, enable Use Global Add-Ons? to show global fields alongside product fields.

Pricing

When Adjust price is enabled:

TypeCalculation
Flat feeFixed amount
Quantity basedPrice × quantity
Percentage basedNot available for appointable products

Prices display next to options on the storefront (can be hidden per field).

Duration add-ons

Duration add-ons are appointable products only.

  1. Create a choice or checkbox field
  2. Enable Adjust duration
  3. Choose Flat time (fixed minutes) or Quantity based (minutes × quantity)
  4. Enter minutes; optionally hide the duration label

The slot engine checks base + selected add-on duration. Multiple duration add-ons stack.

Example: 60-minute appointment + 15 min add-on + 30 min add-on = 105 minutes required availability.

tip

Test duration add-ons against your availability rules — long combinations need open slots for the full window.

Display and validation

SettingOptions
Title formatLabel · heading · hide
Display as (multiple choice)Dropdown · radio · images
Text restrictionsAny · letters · numbers · alphanumeric · email
LimitsCharacter length; quantity min/max; customer price min/max

Import and export

Export / Import on the product Add-ons tab uses JSON — copy add-ons between products or back up configurations.

Recurring packages

When recurring packages are enabled, each option can use Use once per recurring series:

  • Price and duration apply once for the whole package, not per session
  • Ideal for setup fees or one-time equipment on class packs

Use once per recurring series

Best practices

  1. Group related options with Heading fields
  2. Show prices clearly on the storefront
  3. Explain duration add-ons in option labels or descriptions
  4. Use global add-ons for options shared across products
  5. Test extended durations with real availability rules