WooCommerce Tour Booking: Sell Group Tours Online - Wooninjas - The WooCommerce Ninjas
Back to Blogs
WooCommerce

WooCommerce Tour Booking: How to Sell Group Tours and Travel Experiences Online

Set up WooCommerce Bookings for your travel business. Manage group capacity, per-person pricing, and tour schedules using the WooNinjas bookings plugin.

Ryyan June 24, 2026 13 mins read
A page showing WooCommerce group tour bookings and book now on the monitor in the background and a blue ninja pointing at it with a thumbs-up in the foreground.

WooCommerce tour booking is group-tour scheduling built into a WooCommerce store, where each tour is a bookable product with a set capacity, departure times, and per-booking attendee limits. Customers pick a date and group size from a live calendar, and the seats remaining update as bookings come in. Each booking becomes a WooCommerce order, in the same dashboard as the rest of the store.

Tour operators have requirements most service businesses do not: group capacity that has to hold across phone and online bookings, per-departure seat counts, and last-minute group bookings that can take the final seats. Tracking that by spreadsheet is a daily job. It is the gap WooCommerce Bookings closes. What follows is how to configure the WooNinjas WooCommerce Bookings Add-on for tour and travel businesses, including the specific settings that handle group capacity, per-person pricing by guest type, multiple daily departure times, seasonal rate rules, and virtual tour delivery through Zoom.

Why Tour Operators Run Their Booking Systems Through WooCommerce

Booking a tour is increasingly something travellers do online rather than by phone. Phocuswright and Arival, in their Outlook for Travel Experiences report, found online bookings in the tours, activities, and attractions sector climbed from 17 percent of the global total in 2019 to nearly 30 percent by 2021. A booking system that handles that demand has to do more than most service businesses need. A single tour product may run three departures a day, charge different rates for adults and children, cap at 25 participants, require 48 hours’ advance notice, and cost 20% more on weekends. Managing that manually is a full-time job.

Departure time slots are defined in the Availability tab. Capacity limits are enforced through the Slots Per Event setting. And every completed booking creates a standard WooCommerce order in the dashboard, with the same payment processing, order history, and customer account management used for the rest of the store.

That last point matters operationally. When tour bookings run inside WooCommerce, the booking data lives in the same database as retail sales. Vouchers, merchandise, travel accessories, and gift cards can all be purchased from the same checkout. There are not two separate revenue streams running through two separate systems.

Configuring Event Capacity for WooCommerce Tour Bookings

Capacity control for tour events runs through the Slots Per Event setting in the WooCommerce Bookings Add-on. This field sets the total number of seats available for the event on each bookable day. Once all slots are filled, the product shows as unavailable, and no further bookings can be made.

To set capacity, go to the product edit page and open the Booking Options tab. With the Event booking type selected, enter the Slots Per Event value to define the total available seats. You can also configure the Attendees Count with minimum and maximum fields to control how many participants can be included in a single booking. The Add Number of Attendees option lets customers specify their group size at the point of booking, and the system deducts from the available slots to match.

This approach prevents overbooking automatically. When the last available slot is taken, the tour date becomes unavailable in the calendar immediately. No manual intervention required.

image showing booking settings tab with event booking type and capacity fields highlighted.

The Booking Settings tab with the Event booking type selected and the capacity fields highlighted: Add Number of Attendees, the Attendees Count range, and Slots Per Event, which sets the total seats for each event day.

Managing Attendee Numbers for Tour Bookings

The WooCommerce Bookings Add-on Event type supports attendee counts per booking. The Attendees Count field lets you set a minimum and maximum number of attendees per booking, giving you control over the group size range that is accepted for each tour product.

When the Add Number of Attendees option is enabled, customers see an attendee count field on the product page. They enter their group size, and the system calculates the booking total and deducts from the available Slots Per Event to match. The product calendar shows remaining availability in real time.

For tours with a strict group size requirement, such as a private tour with a minimum of two and a maximum of eight, configuring both the minimum and maximum Attendees Count fields enforces this at checkout. Customers who try to book outside the permitted range will not be able to proceed.

Setting Up Tour Availability and Departure Times

Availability for Event booking type products is configured in the Availability tab of the bookable product. The key fields are:

  • Available Days — select which days of the week the tour runs.
  • Available Time Range — set the start and end time for each tour. This controls when the tour appears as bookable on the product page.
  • Blackout Dates (optional) — block specific dates when the tour does not run, such as public holidays or maintenance days. Multiple dates can be imported via CSV.
image showing availability rules tab with available days selector.

The Availability Rules tab, with the available days selector, the daily time range that sets each departure window, and the blackout dates that block specific days.

  • Slots Per Event sets the total number of seats available per event day. Availability updates in real time as bookings are confirmed in Settings.

For tour operators running multiple departure times in a day, create a separate bookable product for each departure. Each product can have its own Available Time Range, Slots Per Event capacity, and pricing. This approach gives precise control over each departure’s availability and prevents scheduling conflicts between departures.

For tours running the same route at 9 am and 2 pm, configure two separate Bookable Products — one for each departure time. Each gets its own Available Time Range and its own Slots Per Event count. Both appear in the WooCommerce catalogue and in Booking Reports, and the capacity of each departure is tracked independently.

Pricing Your Tour Products

Pricing for Event booking type products in the WooCommerce Bookings Add-on is configured directly on each product using standard WooCommerce pricing fields. The Regular Price sets the base booking price. The optional Sale Price, when set, applies automatically at checkout for the duration it is active and displays alongside the regular price on the product page.

For tours with different pricing periods, such as peak season versus off-season, update the Sale Price on the relevant product for the duration of the pricing change. Each tour product manages its own pricing independently, so a summer coastal tour and a winter mountain tour can carry different prices without affecting each other.

For admin-created bookings from the manual booking wizard, the payment status can be set to Pending Payment (which sends the customer an invoice to complete from their account) or Paid (which closes the order immediately with a confirmation email).

image showing pricing tab with regular price and optional price.

The Pricing tab shows the Regular Price and optional Sale Price fields that set the rate for the tour product.

Virtual Tour Delivery: Zoom and Google Meet Built Into the Booking System

Virtual experiences have opened a second revenue stream for tour operators. Online city tours, remote heritage experiences, and virtual cooking classes all follow the same WooCommerce Bookings workflow as in-person tours, with one additional step: automated meeting link delivery.

When configured with the WooNinjas Zoom or Google Meet connection, a virtual WooCommerce Bookings automatically generates a meeting link when the booking is confirmed and delivers it in the confirmation email. No manual link creation. No forwarding meeting details after payment. The guest books, pays, and receives their session link in one automated sequence. Configuration details are in the Zoom and Google Calendar setup guide.

Virtual and in-person tours can coexist in the same WooCommerce product catalogue. A store can run a daily 10 am in-person walking tour and a separate 7 pm virtual version of the same experience, each with its own pricing, capacity, and booking rules, managed from the same admin dashboard.

image showing location settings and goolge meet for online tour delivery

The Location Settings tab is set to Virtual/Online, with the platform dropdown open on Zoom and Google Meet for online tour delivery.

What Does the Admin Dashboard Show You?

The Booking Reports section in the WooCommerce menu provides a real-time view of every WooCommerce Booking across all products. Filter by product, date/time, booking status, or customer name. Each record shows the departure time, total number of attendees, the current order status, and a direct link to the full order. For tour operators managing multiple daily departures across several products, this filtered view is significantly faster than reviewing individual orders.

Looking for a Ready-Made Solution?

Explore our WordPress, WooCommerce, and LMS plugins built to extend functionality without custom development.

Browse Our Products

Manual bookings for phone and agent reservations are created through WooCommerce > Booking Reports > Add New Booking. Select the customer, choose the tour product, set the departure slot, enter the participant counts for each person type, configure any add-on resources, and set the payment status. The system creates a full WooCommerce order with a confirmation email. The departure slot’s remaining capacity updates immediately.

image showing booking reports dashboard across departure times and direct order links.

The Booking Reports dashboard shows tour bookings across departure times, participant counts, booking status, and direct order links.

The Customer Booking Experience for WooCommerce Tour Bookings

Customers access all their WooCommerce Bookings from the Bookings tab in their My Account area. Each reservation shows the tour name, departure date and time, order reference, current status, and available actions. For customers who book recurring tours or purchase for different group sizes, this tab becomes a useful reference for their own travel planning.

For upcoming tours, guests can request a reschedule to a different departure time or date, or initiate a cancellation within the policy window you have configured. Rescheduling enforces the original booking duration and guest count constraints. The cancel booking modal displays the cancellation policy clearly before the guest confirms, ensuring the terms are visible at the moment they are most relevant.

image showing my bookings page with departure dates and cancel actions.

The My Bookings page shows tour reservations with departure dates, status labels, and self-service View, Reschedule, and Cancel actions.

Payment Processing for Group Tour Bookings

Every WooCommerce Bookings tour session processes payment through the standard WooCommerce checkout. The price summary shows the total booking price and any applicable discounts before the guest confirms. Guests pay through whichever gateways are configured in your WooCommerce settings.

Note: deposit collection is not currently available in the WooCommerce Bookings Add-on. Payment options are full payment at booking or Pending Payment via invoice. For admin-created bookings from the wizard, the payment status is set to Pending Payment (sends an invoice) or Paid (closes the order with a confirmation).

image showing payment and payment status options.

The Payment and Complete step shows the full group price summary with per-person rates, participant counts, applied discounts, and payment status options.

WooCommerce Tour Booking: The Direct Answer

To set up WooCommerce Bookings for tour products, install the WooNinjas WooCommerce Bookings Add-on and create a Bookable Product for each tour. Select the Event booking type, then configure the following:

Step 1: Create the Bookable Product

Add a new WooCommerce product and enter or edit the product title. In the Booking Options tab, select the Booking Type as Event.

Step 2: Configure the Event Settings

Once the Event booking type is selected, fill in the following fields:

  • Booking Title / Service Name (optional)
  • Start Date
  • End Date
  • Add Number of Attendees (optional)
  • Attendees Count (Min and Max fields; optional)
  • Slots Per Event (total seats available per event day)
  • Assigned Resource / Staff (optional)
  • Auto-cancel pending/failed orders after 24 hours (optional)
  • Cancellation Threshold (hours)
  • Show Timezone on Booking Times (optional)
image showing full booking settings tab for event tour.

The full Booking Settings tab for an Event tour, showing the booking type, title, dates, attendee range, Slots Per Event, assigned guides, the auto-cancel option, and timezone display.

Location tab:

  • Location Type (physical or virtual)
  • Physical Location
image showing location settings tab with tour's meeting point in address field.

The Location Settings tab is set to a physical location, with the tour’s meeting point entered in the address field.

Availability tab:

  • Available Days
  • Available Time Range
  • Blackout Dates (optional)
image showing availability rules tab with blackout dates when each departure is bookable.

The Availability Rules tab again, where available days, the daily time range, and blackout dates control when each departure is bookable.

Pricing tab:

  • Regular Price
  • Sale Price (optional)
image showing pricing tab with regular price and optional sale price for each tour.

The Pricing tab, where the Regular Price and optional Sale Price set the rate for each tour product independently.

Cancellation settings (optional):

  • Allow customers to cancel their bookings
  • Cancellation Deadline (hours before start date when cancellation is permitted)
  • Cancellation Policy (text shown in emails and the cancellation modal)
  • Enable showing this policy text in the cancellation modal.
image showing cancellation tab with cancellation settings highlighted.

The Cancel/Reschedule tab with the cancellation settings highlighted: the cancel-permission toggle, the deadline before start time, the policy text, and the option to show that policy in the cancellation modal.

Reschedule settings (optional):

  • Allow customers to reschedule their bookings
  • Allowed Order Statuses (which statuses allow rescheduling)
  • Reschedule Deadline (hours before start date when rescheduling is permitted)
image showing reschedule tab with reschedule settings highlighted.

The same tab with the reschedule settings highlighted: the reschedule-permission toggle, the order statuses that allow it, and the deadline before start time.

Make sure to press the Publish/Update button after making any changes to the product. Every booking creates a WooCommerce order and updates the remaining departure capacity in real time.

The Add-on starts at $79/year. Full documentation on the WooCommerce Bookings page.

Tiered group pricing across multiple daily departures takes time to configure correctly. WooNinjas has configured WooCommerce Bookings systems for operators running everything from small private walking tours to large multi-departure travel experiences with tiered group pricing. To skip the configuration time, get in touch with us here with a review of your tour setup, and we will scope the build.

Frequently Asked Questions

Can WooCommerce handle tour bookings with capacity limits?

Yes. The WooNinjas WooCommerce Bookings Add-on supports capacity control through the Slots Per Event setting on each Event booking type product. This sets the total number of seats available per event day. When you confirm the booking, the available count decrements in real time. When all slots are filled, the date becomes unavailable automatically. The Attendees Count fields (minimum and maximum) let you control how many participants can be included in a single booking.

How do I set up multiple departure times for a WooCommerce tour product?

Create a separate Bookable Product for each departure time. Each product uses the Event booking type and has its own Available Time Range setting in the Availability tab. For example, a 9 am tour and a 2 pm tour are configured as two separate products, each with its own Available Days, time range, Slots Per Event capacity, and pricing. This approach gives precise control over each departure and ensures that bookings on one departure do not affect the capacity of another.

Can I set blackout dates for specific tour products in WooCommerce?

Yes. Each Event booking type product in the WooCommerce Bookings Add-on supports individual Blackout Dates in the Availability tab. You can block specific dates when a tour does not run, such as public holidays or off-season closures. You can import multiple blackout dates at once via CSV. This is set per product, so different tour products can have different unavailable dates independently.

Can I run virtual tours through WooCommerce alongside in-person tours?

Yes. The WooNinjas WooCommerce Bookings plugin connects with Zoom and Google Meet. When a booking is confirmed, virtual tour products automatically generate meeting links and include them in the confirmation email. In-person and virtual tours can run as separate products in the same WooCommerce catalogue, each with its own availability and pricing.

What payment options are available for WooCommerce Bookings sessions?

The WooNinjas WooCommerce Bookings Add-on supports two payment options per product. Full payment at booking requires customers to complete payment through the WooCommerce checkout before the booking is confirmed. Pending Payment allows the booking to go through without immediate payment, with the customer receiving an invoice they can pay from their WooCommerce account. Note: deposit collection is not currently available in the add-on.

Need Ongoing WordPress Maintenance & Support?

We handle updates, performance monitoring, security hardening, and technical fixes so your WordPress and WooCommerce site stays stable and secure.

View Maintenance Plans

Scroll to Top