Directory / plugin

Ticket Shop for WooCommerce

v1.1.0 · by Codestorm Technology

Turn WooCommerce products into simple tickets with visit dates, local QR/PDF generation and one-time check-in.

View on WordPress.org

About this plugin

Ticket Shop for WooCommerce is a lightweight ticketing layer that works with WooCommerce. It keeps payments and product pricing in WooCommerce and adds the essentials needed to issue and validate tickets.

Current version includes:

  • A simple Ticket Shop for WooCommerce dashboard.
  • Ticket-enabled WooCommerce products.
  • Global visit calendar with open weekdays and time slots.
  • Optional capacity per product/date/time, with a product default and exact slot overrides.
  • Cart and checkout availability checks to prevent purchases above configured capacity in normal purchase flow.
  • Visit date/time captured in the cart and order.
  • One ticket per purchased unit after payment confirmation.
  • Local QR Code generation. Ticket QR payloads are not sent to third-party QR services.
  • Downloadable ticket PDFs generated locally by the plugin, with the QR drawn from the bundled QR matrix.
  • Ticket links added to customer WooCommerce emails.
  • Admin check-in with read-before-confirm flow.
  • Atomic one-time consumption: a second entry is blocked.
  • Optional camera scanning through the browser BarcodeDetector API, with manual/USB scanner fallback.
  • Basic ticket list, settings and help screens.
  • Individual ticket cancellation without cancelling or refunding the WooCommerce order.
  • Admin QR/PDF reissue and manual ticket e-mail resend. Reissue invalidates the previous QR.
  • Ticket lifecycle history for created, sent, check-in, cancelled and reissued events.
  • Restricted Ticket Validator role with check-in permission but no ticket-management or WooCommerce administration access.
  • Ticket, calendar and protected operator check-in shortcodes.
  • WordPress personal data exporter and eraser integration.
  • RTL, keyboard-focus and reduced-motion friendly admin UI.

The plugin does not process payments itself. WooCommerce remains responsible for products, prices, checkout, payment gateways, taxes and refunds.

Privacy

The plugin stores the minimum purchaser information needed to issue and validate tickets: order reference, ticket code, customer name/e-mail, visit date/time and usage state. Check-in audit records store hashed IP address and hashed user-agent values rather than their raw values.

The plugin registers with the WordPress personal data exporter and eraser tools. Erasure anonymizes customer name/e-mail and the WordPress user reference while retaining the order reference and operational ticket state for transaction integrity.

QR Codes and ticket PDFs are generated locally. Version 1.1.0 does not send ticket payloads to any service operated by the plugin author.

External services

The plugin does not contact an API or cloud service operated by the plugin author. QR Codes and ticket PDFs are generated locally by the bundled PHP libraries.

WooCommerce itself, payment gateways, e-mail providers, hosting services, browser features and other extensions installed by the site owner may communicate with their own external services independently of this plugin.

The optional camera scanner uses the browser BarcodeDetector API when the visitor’s browser supports it; the plugin does not upload camera images to the plugin author or to a remote scanning service.

Third-party libraries

The production ZIP bundles only the following runtime libraries locally; no CDN is required. Their upstream license files remain included under vendor/.

  • chillerlan/php-qrcode 6.0.1 — MIT and Apache-2.0
  • chillerlan/php-settings-container 3.3.0 — MIT

Ticket PDFs are generated by the plugin itself with core PDF operators. QR graphics are drawn directly from the local QR matrix, so no HTML-to-PDF library, remote QR service or CDN is required.

The plugin folder, text domain and existing implementation identifiers are retained for WordPress.org update and data compatibility. They are technical identifiers and are not the plugin display name.

Plugin tags