Seating Charts
Seating Charts#
Let customers pick their exact seat when they buy a ticket. Seating is set up per venue as sections, rows, and seats per row, and every event held at that venue uses the same layout.
What the feature includes#
- Sections with a name, a number of rows, and seats per row (for example Balcony, 5 rows, 10 seats).
- An optional Price +/- per section. The amount is added to the ticket price in the cart. Negative values work as a discount.
- A seat picker on the event page and on the linked ticket product page.
- A seat is held for 15 minutes as soon as a customer clicks it. Other shoppers see it as taken.
- Seats in an order stay held until the order is paid or cancelled. Paid seats show as sold.
- Selected seats are saved on the order, shown in the order details and in My Account, and printed on tickets.
Not included in this version: seat categories with colors, general admission sections, accessible or companion seat flags, curved or spaced rows, blocking single seats, and moving seats between orders. Use separate sections with a Price +/- where you need different pricing.
Turn seating on#
- Go to Events > Settings > Advanced.
- Under Feature Toggles, tick Enable seating chart management.
- Click Save Changes.
To hide the seat picker on event pages but keep it on the product page, untick Show seat selection section on event pages under Events > Settings > Display.
Build the seating chart#
- Go to Events > Venues and edit the venue, or add a new one.
- Scroll to the Seating Chart box.
- Click Add Seating Section.
- Enter a Section Name, the number of Rows, and Seats/Row. Total Seats is calculated for you.
- Set Price +/- if tickets in this section cost more or less than the ticket price. Leave it at 0 for no change.
- Repeat for each section, then update the venue.
Rows are labelled A, B, C and seats are numbered 1, 2, 3, so a seat reads as “Balcony - Row B, Seat 7”.
Total Venue Capacity under the table shows the sum of all sections. Keep the event capacity equal to or lower than this number, or more tickets can be sold than there are seats.
Assign the chart to an event#
- Edit the event.
- Pick the venue in the Event Location box.
- Save the event.
Every event at that venue gets the seat picker. Availability is tracked per event, so the same seat can be sold for two different events at the same venue.
What customers see#
- The picker lists each section with its rows. Available seats are clickable, taken seats are greyed out.
- A section with a price adjustment shows the amount next to its name.
- Clicking a seat holds it for 15 minutes and shows “Seat held. Complete your purchase within 15 minutes.” Clicking it again releases it.
- If someone else took the seat first, it turns grey and shows “This seat is no longer available.”
- Customers pick one seat per person. The limit is Default Max Tickets under Events > Settings > Tickets.
- Selected seats are listed under the chart and added to the cart with the ticket. The cart price includes any section adjustment.
If the seat count does not match the ticket quantity, or a seat was taken in the meantime, add to cart shows an error and nothing is added.
Holds and releases#
| Situation | Seat status |
|---|---|
| Customer clicks a seat | Held for 15 minutes for that visitor |
| Customer clicks it again or leaves | Released after the hold expires |
| Order placed, not yet paid | Held until the order is paid or cancelled |
| Order paid (Processing or Completed) | Sold |
| Order cancelled or refunded | Released |
| Ticket cancelled from the Attendees screen | Released |
Expired holds are cleaned up hourly and whenever the seat picker loads. Developers can change the hold length with the emwc_seat_hold_minutes filter.
Changing a chart after sales started#
Editing rows or seats per row on a venue with sales changes the grid for every event at that venue. Sold seats keep their label, so shrinking a section below a sold seat leaves that seat off the chart. Add sections rather than shrinking existing ones once tickets are selling.
Troubleshooting#
The Seating Chart box is missing on the venue screen. Seating is off. Turn it on under Events > Settings > Advanced.
No seat picker on the event page. Check that the event has a venue selected, the venue has at least one section with rows and seats, and Show seat selection section on event pages is on under Events > Settings > Display.
No seat picker on the product page. The product has to be an event ticket linked to the event (Event Ticket tab on the product).
A seat shows as taken but nobody bought it. Someone has it in their cart or in an unpaid order. Cart holds expire after 15 minutes. Unpaid orders release their seats when WooCommerce cancels them, which you control with WooCommerce > Settings > Products > Inventory > Hold stock (minutes), or when you cancel the order yourself.