Tickets & Passes for WooCommerce adds three product types to your shop: Ticket, Timeslot Ticket and Pass. Customers buy them the same way they buy anything else in your store, and every purchase issues a QR code.
The door side is in the box. You get a phone scanner page at /check-in/, a Scanner user role for staff who should not see the rest of wp-admin, and admin dashboards where you can search a ticket, check someone in by hand, resend a QR code, reset it or cancel it. There is no external ticketing service to sign up for and no fee per ticket sold.
Built for venues, attractions, museums, escape rooms, festivals, clubs and anyone else who sells admission and then has to let people in.
Ticket is plain admission with a validity window and a set number of uses. Day tickets, entry tickets, gift admission.
Timeslot Ticket is admission for a specific date and time. Slots can be generated on a repeating schedule, so you are not building next month by hand, and unpaid reservations are released again on their own. An abandoned checkout will not sit on a seat.
Pass is valid across a period instead of a single visit: season passes, memberships, annual cards. A pass can include guest passes that the holder gives away, and it can carry a cardholder photo that staff see when they scan it.
The scanner is a full screen page on its own URL. No admin bar, no theme menu, nothing for door staff to get lost in.
Every check-in decision is made on your server, never on the phone.
Tickets, timeslot tickets and passes each get their own dashboard with search, manual check-in, resend, reset and cancel. An analytics screen charts check-in activity by day and by hour. Colours and hint text are set per product type, so a ticket looks like it belongs to your site rather than to a plugin. Everything is gated on the manage_woocommerce capability, which means a Shop Manager can run the whole thing without an Administrator account.
Tickets and Passes tabs are added to the normal WooCommerce My Account page. From there a customer can view a QR code, download a printable PDF, upload a pass photo if you have asked for one, and hand out any guest passes their pass came with.
The WooCommerce order emails are extended with the ticket, timeslot ticket or pass details. Four more templates cover resending a ticket, resending a pass, and inviting a guest pass recipient, with separate wording depending on whether that person already has an account. Every subject and message body is edited in wp-admin and supports merge tags for order and ticket details.
An hourly job generates the next batch of recurring timeslots. A per minute job releases timeslot reservations that were never paid for. Both run in the background.
Settings live under Ticket & Passes > Settings, in six tabs. Only the tabs for the product types you actually sell need configuring.
wp-content/uploads. Keep that folder out of any publicly executable location and without execute permissions./check-in/ page on. Leave it off if you use a third party scanner app instead, the API keeps working either way. The scanner URL is shown here once it is on.Five templates, each with an editable subject where one applies and a message body in the normal WordPress editor. Merge tags are available for order and ticket details.
This plugin ships no compiled or obfuscated code. Every PHP, JavaScript and CSS file
written for this plugin is included in readable, editable form, and no build step
(npm, webpack, Composer, etc.) is required to run or modify it.
The following third-party libraries are bundled unmodified. Each is the upstream
distribution file, at the version listed:
The two Composer-installed libraries can be regenerated from their composer.json with
composer install; the three JavaScript libraries are the unmodified dist files
published by their projects on npm, and their readable sources live in the linked
repositories.