How to sell holiday camps and activities in WooCommerce

If you are looking to sell holiday camps or activities, WooCommerce is a great choice. It’s ideal for any kind of event that you are running on specific dates, e.g. school camps between certain dates. You can set how many places are available and you can offer optional extras (also with limited availability if needed).
In this tutorial, we’ll look at how to:
- Create products for holiday camps and/or activities
- Limit the number of places per camp
- Allow users to select activities
- Specify maximum places per activity or camp
- Add optional extras
- Apply surcharges on extra items
- Collect user information, like kids’ names and ages, using repeatable fields
We’ve got two methods: the first is simpler and much of it can even be accomplished without an additional plugin. The second is the more advanced method, where it’s possible to book kids into multiple activities from the same page and still keep track of availability for each activity.
As well as WooCommerce, you’ll need the WooCommerce Product Add-Ons Ultimate plugin to achieve some of the functionality covered in this article.
WooCommerce Product Add-Ons Ultimate
Personalize products with extra custom fields and options
Let’s take a look at a simple way to sell holiday camps and activity products.
Method #1: Create activity camp products in WooCommerce
In this method, we’ll create one product per camp or activity. So, if you’re running camps from July 11 to 14, July 18 to 21, July 25 to 28, etc, you’ll create a single product per camp.
The user will book the number of places they require per camp. They will also be able to add optional extras per place and specify details for each child according to the number of places they’re booking.
Here’s an example of how it will look. There’s also a demo product here. This will work with any theme and the layout and appearance will inherit your theme’s styles, ensuring that it’s consistent with the rest of your site.

Step #1: Create your main product
The first step is to create the main product page. This is where users will make their bookings.
- Go to WooCommerce > Products and click ‘Add New’
- Give your product a name, e.g. ‘Kids Activities Camp’
- If you’re running multiple camps, you can also specify this in the name, e.g. ‘Kids Activities Camp July 21 -24’
- Add an image and any descriptive text you like
Step #2: Set the number of available places
In this method, we’ll just use WooCommerce’s standard inventory functionality to manage the number of places available. To set a maximum number of places for each camp:
- Click the ‘Inventory’ tab in the ‘Product data’ section
- Enable the ‘Stock management’ option
- Enter the number of places available in the ‘Quantity’ field

Step #3: Add some extra options
If you would like to upsell some additional products or services, you can use the WooCommerce Product Add-Ons Ultimate plugin to add extra options to your product page.
Once you’ve installed and activated the plugin, you can use it to add extra options to your products. In this example, we’ll use the Pro version of Add-Ons Ultimate to add a checkbox group where the user can select some additional options.
To add extra options to your main camp product:
- Click the ‘Product Add-Ons’ tab in the ‘Product data’ section
- Click ‘Add Group’ then ‘Add Field’
- Select ‘Checkbox Group’ as the field type then click the ‘Add Option’ button to create a new checkbox option
- Add a label for each option, e.g. ‘Early Drop Off’ and an optional price

Now users will be able to select from a list of optional extras on the front end. This is what our product looks like so far, clearly showing the user how many spaces are left and a list of optional extras.

Step #4: Collect user data with repeater fields
The last task is to add fields to allow us to collect data about participants. These fields will repeat according to the number of places being booked, so the user will enter details per child.
To add repeatable fields:
- In the ‘Product Add-Ons’ tab click ‘Add Group’ to create a new group
- Give the group a title and an optional description
- Enable the ‘Repeatable’ option
- If you’d like to link the number of fields to the product quantity, enable ‘Attach to Quantity’
- Set an optional ‘Repeat Limit’ if required

Now you can add fields within the group. When the user updates the quantity field, a new group will be generated with the fields you’ve specified. In our example we’ve added a text field for the child’s name and a number field for their age.

Now our product is complete. The user can book a certain number of places for a specific camp. They can choose some extra options and provide details about each child.

Let’s have a look at some more advanced features.
Method #2: Create an advanced activity camp product
In this version of the product, users will be able to book onto multiple activities for different age groups from the same page. This means you can manage places and availability for multiple items – but the parents can still make a booking from a single page. There’s a demo product here.
For holiday activities, it’s likely that parents will want to book more than one child at the same time. And availability might differ for activities depending on the age of each child. In our example we’ve got camps for kids aged 8 to 11, kids aged 11 to 13, and kids aged 13 to 15.
In the example below, the parent can book children on different activities – plus they’ll be able to order extra options.

Step #1: Create your main product
This method builds on Method 1 above – so you’ll still need to follow all the steps above and create your main product page, optional extras, and repeater fields.
Step #2: Create products for each activity
To allow users to book multiple activities from the same page, we need to create ‘child products’. This means we create separate products for each age range activity, then add them to our main product page as options.
Note that this feature is only available with the Pro version of the plugin.
To create child products:
- Create a new WooCommerce product for the specific activity. In our example we’ve created separate standalone products for each age range, i.e. 8 – 11, 11 – 13, 13 – 15, but you can adapt these to fit your needs
- Enter a price for each product and set availability on the ‘Inventory’ tab of the ‘Product data’ section
- Set the ‘Catalog visibility’ option to ‘Hidden’ to ensure that these products don’t appear in your main shop page

Step #3: Add products as options to your main product
Once you’ve created your child products, you can add them as options to your main product.
- In your main product settings, click the ‘Product Add-Ons’ tab in the ‘Product data’ section
- Add a new group and field
- Select ‘Products’ as the field type
- In the ‘Child Products’ setting, enter the products you’ve just created for the different activities
- Choose ‘Checkboxes List’ to display the age range products in a single list
- Set ‘Products Quantities’ to ‘Independent’ to allow the user to enter a quantity for each product

Publish your product. Users will now be able to choose how many from each age range they’d like to book.

WooCommerce activity camps – recap
That’s how to use WooCommerce to create products where users can book activities and holiday camps. To use additional features like extra options, repeater fields and child products, you’ll need the WooCommerce Product Add-Ons Ultimate plugin.
The plugin is compatible with all themes and page builders and comes with a 14-day money-back guarantee so you can buy without risk. We also have a world-class support team who will be happy to help you with any questions you have.