Skip to content

v3.1 — Self-cancel, live door check-in & ticket polish

Latest

Choose a tag to compare

@redwolfroot redwolfroot released this 04 Jul 22:26
· 25 commits to main since this release

QrGate v3.1

Ticket lifecycle, live door ops and polish on top of the reserved-seating release (v3.0).

✨ New features

  • Self-service cancellation — every confirmation email now carries a personal cancel link (per-ticket HMAC token, no login). Guests can cancel up to 24 h before the event; a Stripe-paid ticket is auto-refunded, the seat/capacity is released and stats are reversed. New animated, interactive cancel page (cancel.php) with a die-cut ticket-stub design.
  • Live door check-in monitor — new "Live Einlass" widget on the admin dashboard: per-date sold / checked-in / pending counts and a rolling feed of the latest scans, polled every 8 s.
  • Double-scan alarm — the handheld scanner now raises a loud visual + haptic alarm when an already-redeemed ticket is re-scanned, showing when it was first scanned.

🎟️ Ticket improvements

  • Reserved seat number now printed on the PDF ticket and shown in the confirmation email (only for seated dates).
  • Email + PDF are localized to the language the site was set to during purchase (DE/EN).
  • New booking-success modal (ticket-stub style), screen-centered and fully i18n.
  • Redesigned general-admission ticket-count stepper.

⚙️ Admin

  • Configurable App-Domain in the dashboard — used to build the links (e.g. the cancel link) in emails.

🐛 Fixes

  • Fixed seated-date availability showing "100/100 free" while seats were sold, and wrong capacity — seated capacity/availability now derives from the seat map + sold seats instead of the stale counter.
  • Fixed seat columns never being persisted on ticket save.

Full changelog: v3.0...v3.1