Description
Orange Cat QR Event Tickets turns any WooCommerce product into an event and handles the whole ticketing flow: sell tickets, email a QR code for every seat, and validate attendees at the door by scanning with a phone — no dedicated app required.
There are no ticket limits: unlimited events, unlimited tickets, no per-ticket fees.
Perfect for concerts, workshops, talks, fairs, screenings and meetups — any event where you sell a seat and check people in at the door.
How it works
- Mark a product as an event and set the start date, optional end date and location.
- Customers buy tickets through the normal WooCommerce checkout (guest checkout works).
- When the order is paid, one QR ticket per seat is generated and emailed, using your store’s WooCommerce email design.
- At the door, staff open a page with the check-in shortcode and scan tickets with the phone camera. The verdict is instant: green (valid), yellow (already used, with the time), or red (revoked or invalid).
- Refunds and cancellations invalidate the affected QR codes automatically and release capacity.
The check-in page is protected by a capability, not by a secret URL: only logged-in staff with the right role can scan or search. QR payloads are HMAC-signed, and check-in is atomic, so two doors can never validate the same ticket twice.
Features
- Unlimited events and QR tickets — no lifetime caps, no per-ticket fees.
- One signed QR code per purchased seat, emailed with your store’s WooCommerce email template.
- Web-based check-in: scan with the phone camera straight from the browser, no app to install.
- Instant visual verdict: valid / already used (with time) / revoked / invalid.
- Manual fallback: find tickets by buyer email or order number and check them in with one tap.
- Capacity control using native WooCommerce stock management.
- Configurable sales close: stop selling a set number of hours before the event starts.
- Automatic ticket revocation on full or partial refunds and on cancellations.
- Upcoming and past event listings via shortcodes.
- Guest-checkout friendly — customers do not need an account.
- WooCommerce High-Performance Order Storage (HPOS) compatible.
- Translation-ready; ships with a Spanish (es_ES) translation.
Credits
This plugin bundles the following third-party open-source libraries:
- chillerlan/php-qrcode (MIT License) — QR code generation.
- chillerlan/php-settings-container (MIT License) — dependency of php-qrcode.
- qr-scanner by nimiq (MIT License) — in-browser QR code scanning for the check-in page.
Screenshots





![The upcoming events listing rendered by the [octk_events] shortcode.](https://ps.w.org/orange-cat-qr-event-tickets/assets/screenshot-6.png?rev=3614681)
[octk_events] shortcode.Installation
- Make sure WooCommerce is installed and active.
- Upload the plugin folder to
/wp-content/plugins/, or install the ZIP from Plugins > Add New > Upload Plugin. - Activate the plugin through the Plugins screen in WordPress.
- Create or edit a product, tick “This is an event” in the General tab, and set the start date (and optionally end date, location, and how many hours before the start sales should close). Enable “Manage stock” to cap capacity.
- Create a page with the
[octk_checkin]shortcode for your door staff, and (optionally) pages with[octk_events]and[octk_events past]to list upcoming and past events. Serve the check-in page over HTTPS — browsers require it for camera access. - Assign the “Event Staff” role (created on activation) to the users who will validate tickets.
FAQ
-
Do I need WooCommerce?
-
Yes. Orange Cat QR Event Tickets is a WooCommerce extension: events are WooCommerce products and ticket sales go through the WooCommerce checkout. WooCommerce 8.0 or newer is required.
-
Does check-in work without an app?
-
Yes. The check-in page runs in any modern mobile browser and uses the phone camera to scan QR codes — there is nothing to install. The page must be served over HTTPS, because browsers only grant camera access on secure origins. A manual search (by buyer email or order number) is available as a fallback.
-
Do the QR codes expire?
-
No. A ticket’s QR code stays valid until the ticket is checked in, or until it is revoked by a refund or cancellation. Codes are HMAC-signed; if you ever need to invalidate every issued code at once, you can regenerate the signing secret from the settings screen.
-
What happens with refunds and cancellations?
-
Cancelling an order or refunding it in full revokes all of its tickets and their QR codes. A partial refund revokes only the refunded quantity for that line, preferring tickets that have not been scanned yet. Capacity is released through WooCommerce’s native stock handling.
-
Is there a Pro version?
-
Yes, a separate Pro add-on extends the free plugin with: ticket types via product variations (e.g. General / VIP), a designed per-ticket PDF attached to the email and downloadable from the customer account, offline check-in (validate without a connection and sync later), split staff capabilities with an attendance log of who validated what, and an attendance report screen with CSV export. Named attendees are part of the free plugin, not the add-on. The free plugin is fully functional on its own; the Pro add-on is optional.
-
Is the plugin really free?
-
Yes, completely. Unlimited events, unlimited tickets, no per-ticket fees and no time limits — selling tickets, emailing a signed QR for every seat and checking attendees in all work with the free plugin alone. An optional Pro add-on adds extras (see “Is there a Pro version?” above).
-
Does it work with the WooCommerce block checkout?
-
Ticket generation, the ticket email and check-in work with both the classic and the block checkout. The optional attendee-name field currently attaches to the classic checkout shortcode (
[woocommerce_checkout]); block-checkout support for that field is on the roadmap. -
Which themes are supported?
-
Any standard WooCommerce-compatible theme. The check-in page and the event listings ship with their own minimal styles and inherit your theme’s typography, so they blend in without configuration.
-
How do I give my staff access to check-in?
-
Activating the plugin creates an “Event Staff” role. Assign it to the users who will validate tickets, then share the URL of the page holding the
[octk_checkin]shortcode. Serve that page over HTTPS — browsers only allow camera access on secure origins. -
Can I customize the ticket email?
-
The “Your tickets” email uses your store’s standard WooCommerce email template, so it inherits the header, footer, colours and logo you set under WooCommerce → Settings → Emails.
-
Is attendee data stored safely?
-
Everything stays on your own site. Attendee names live on the order, QR payloads are HMAC-signed locally with no external service, and uninstalling the plugin removes its table, options, role and capabilities.
-
Does it work on WordPress multisite?
-
Yes. Activate it per site, like any other WooCommerce extension.
-
Which languages are included?
-
English (source) and Spanish (es_ES). The plugin is translation-ready, so additional languages can be added with any standard WordPress translation workflow.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Orange Cat QR Event Tickets” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Orange Cat QR Event Tickets” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.2.0
- Attendee names are now a fully-functional free feature: capture one attendee name per ticket at checkout (opt-in per product), shown on the ticket, the ticket email, and the check-in screen.
- Removed an unused email-attachment extension filter that had no functional purpose in the free plugin.
- Text domain now matches the assigned wordpress.org slug (orange-cat-qr-event-tickets).
- Translation .po/.mo files are no longer bundled in the plugin ZIP; only the .pot template ships (translations are delivered via translate.wordpress.org).
0.1.0
- Initial release: event products, unlimited signed QR tickets by email, web camera check-in with a manual search fallback, capacity via stock, configurable sales close, automatic revocation on cancellation and full/partial refunds, upcoming/past event shortcodes, HPOS compatibility, and a Spanish (es_ES) translation.
