Skip to content
Gaurav TiwariDocs

Attendee Names, Rosters and QR Check-in

Updated October 22, 2026

When one person books four seats, you usually know only the booker’s name. At the door that’s a problem: you don’t know who the other three are, and you’re ticking names off a printout. The Classes and events module fixes both. It can ask for a name for each extra seat, gives every confirmed booking a ticket with a QR code, and lets the host check people in from a phone.

All of this needs the Classes and events module switched on in Bookings → Settings → Modules and a service set to Scheduled group session.

Ask for Attendee Names

In the service’s Classes and events section, set Attendee names to one of three options:

  • Do not ask: only the booker’s name is collected. This is the default.
  • Optional for each extra seat: the form shows the name fields, and customers can leave them empty.
  • Required for each extra seat: the booking can’t go through until every extra seat has a name.

The booking form adds “Attendee 2 name”, “Attendee 3 name” and so on as the customer changes the seat count. Each name can be up to 200 characters. The names show on the customer’s booking page, the appointment panel, the roster, the ticket and the CSV. See it on the WordPress Workshop demo.

Open a Session Roster

Go to Bookings → Services → Classes. Under Session roster and check-in, pick a session from the list and click Open roster. The list covers sessions from the last week and the next 60 days that have bookings. Staff see their own sessions; managers see everyone’s.

  • A summary line: confirmed seats out of the session limit, and how many have checked in.
  • Ticket sales for the session, with the cap beside each ticket that has one.
  • One row per booking with the booker, the other attendees, the email, the ticket, the seats, the booking and payment status, and the check-in state. Course enrollments show which session this is, such as “Course session 2 of 6”.
  • Download CSV exports the roster with tickets, attendee names, course session, booking and payment state, and check-in seats and time.

Managers also see Cancel enrollment on course bookings. It cancels every future session of that enrollment with one reason. Refunds are issued separately from the appointment.

Give Customers a Ticket

Every confirmed group booking gets a Show my ticket link on the customer’s booking page and dashboard. The ticket page shows the event, time, location, seats, ticket type and attendee names, plus a QR code with the line “Show this code at the door. Staff scan it to check you in.” A course ticket lists every session.

The ticket is only valid while the booking is confirmed. A cancelled booking’s ticket page says so, and the codes stop working when the booking is erased or its private link expires. The ticket link never reveals the customer’s private booking link.

Check People In

You have two ways to record who turned up:

  1. Scan the QR code with any phone camera. It opens a check-in page on your site. Log in as the session’s host or a booking manager, set Seats arrived and tap Check in. For a course, the session closest to now is listed first.
  2. Use the roster. Each confirmed booking has a seats field and a Check in button. After a check-in, the button reads Update.

Set the seats to 0 to undo a check-in. Scanning a code on its own changes nothing: someone with access has to submit the form. Each change is logged in the booking’s activity.

If you also use the staff portal, its check-ins and the Classes check-ins are the same record. A booking checked in from the portal shows as checked in on the roster, and undoing it in Classes clears it for the portal too.

Good to Know

  • Only confirmed bookings can be checked in.
  • Check-in records seats, not named people. If two of four seats arrive, you record 2.
  • Someone who isn’t logged in is sent to the WordPress login page first. Staff who aren’t the host of that session can’t check anyone in.
  • Check-ins can trigger the Attendee checked in and Check-in undone webhook events. See webhooks and integrations.
  • Attendee names are part of the customer’s data, so privacy exports include them and erasure removes them.
Share

Was this helpful?

Still stuck? Open a support ticket