Linux 软件免费装
Banner图

Tickets & Passes for WooCommerce

开发者 macvej
更新时间 2026年9月26日 23:52
PHP版本: 8.0 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

qr code event tickets ticket scanner season pass timeslot booking

下载

1.6.1 1.2.0 1.2.1 1.2.2 1.0.4 1.0.5 1.0.6 1.0.7 1.2.3

详情介绍:

Tickets & Passes adds three product types to WooCommerce: Ticket, Timeslot Ticket and Pass. Customers buy them like anything else in your shop, every purchase issues a QR code, and staff scan that code at the door from a phone browser. Everything runs on your own site. There is no ticketing service to sign up for, no fee per ticket sold, and no account with anyone else. Built for venues, attractions, museums, escape rooms, festivals, clubs and anyone who sells admission and then has to let people in. Three product types Check-in at the door Running it from wp-admin What your customers get Emails Customer files stay private QR codes, ticket PDFs and pass photos are not reachable at a guessable public URL. They live in a folder with a random name and are served through the plugin, which checks on every request that the caller holds a signed link from their own email or is signed in as the person the ticket belongs to. Responses are marked private and per-visitor, so a page cache or CDN can never hand one customer's ticket to the next visitor. Nothing to configure, and it behaves the same on Apache, nginx and IIS. Privacy Tickets, timeslot tickets and passes store the holder's name, and a pass can also store a cardholder photo and an email used to gift it. Check-in history records the scanning staff member and when a code was used, not the holder. Gifting a pass to someone else's email creates them a customer account if they do not already have one. The plugin registers a personal data exporter and eraser under Tools > Export/Erase Personal Data. Erasure anonymises rather than deletes, so check-in history and analytics keep their counts, and a ticket or pass still valid for an event ahead is retained until it expires. Nothing to maintain An hourly background job generates the next batch of recurring timeslots. A per-minute job releases timeslot reservations that were never paid for. Works with Requirements

安装:

1. Install and activate In wp-admin go to Plugins > Add New > Upload Plugin, choose the zip and click Install Now, or upload the unzipped folder to /wp-content/plugins/ over FTP. Activate from the Plugins screen with WooCommerce already active. Activation creates the plugin's database tables and refreshes permalinks, so the My Account tabs and the scanner URL work straight away. 2. Turn on the product types you need Go to Ticket & Passes > Settings. Tick Enable on the Ticket, Timeslot Ticket and Pass tabs. Anything you leave off stays out of your way. 3. Turn on the scanner On the Scanner / API tab, make sure the built-in scanner is on. Leave the API off unless an external scanner app will check tickets in; the built-in scanner does not need it. The tab then shows your scanner URL, which is /check-in/ on your own domain. 4. Create a product Products > Add New, then pick Ticket, Timeslot Ticket or Pass from the Product data dropdown - the same dropdown that holds Simple and Variable. Validity, uses, capacity, recurring schedule and QR design appear below it. 5. Give door staff access Edit the user under Users and set their role to Scanner. They can then open /check-in/ on a phone and check people in, and see nothing else in wp-admin. Administrators and Shop Managers already have access. Settings at a glance Settings live under Ticket & Passes > Settings in six tabs. Only the tabs for the product types you sell need touching.

屏幕截图:

  • A Timeslot Ticket product page, where the customer picks a date and then an available time.
  • A Pass product page, showing the pass details and the cardholder fields collected at purchase.
  • The Tickets tab in My Account, where customers view and download their tickets.
  • The ticket dashboard in wp-admin, with search, manual check-in, resend, reset and cancel.
  • The analytics screen, charting check-in activity by day and by hour.
  • The settings screen.

升级注意事项:

1.6.1 Adds translations for 23 more languages, and brings the Danish and Swedish translations up to date with 1.6.0. No action needed. 1.6.0 Adds a Settings > Privacy exporter and eraser for personal data requests. Security fixes: pass cancel/refund now matches by order line, checkout re-validates ticket/timeslot/pass lines again, and a timeslot product can't borrow another product's time slots. No action needed. 1.5.0 Security fixes: a transferred ticket survived a refund, an expired timeslot hold was never released, a dashboard cancel could be undone by the next Create, and a QR code with a centre logo could fail to scan. Adds Danish and a redraw control for codes already issued. No action needed. 1.4.1 Security fixes: a timeslot seat could be held for a basket that was already refused, a guest quota is now enforced by the database, issuing an order line is serialised so it cannot run twice, and stray pass photos move into the protected folder. Adds Swedish. No action needed.

常见问题:

Does it need WooCommerce?

Yes. The plugin adds WooCommerce product types and will not activate without WooCommerce active.

Are there any per-ticket fees?

No. There is no external service and nothing to sign up for. You sell through your own WooCommerce checkout, and what you charge is what you keep.

Can I sell tickets and passes in the same shop?

Yes. All three product types can be on at once, and they can sit in the same cart and the same order as your normal products.

Do door staff have to install an app?

No. The scanner is a web page that uses the phone camera. It needs a browser and HTTPS, which is what the camera API requires.

Does the scanner work offline?

No. Every scan is checked against your site as it happens, so the phone needs a connection at the door. That is also why nobody gets a cancelled ticket through by putting the phone in airplane mode.

Who is allowed to check people in?

Users with the Scanner role, and users with the manage_woocommerce capability, which covers Administrators and Shop Managers. The scanner page turns everyone else away.

Can I check people in without a phone?

Yes. Each dashboard in wp-admin has a manual check-in action, so you can find the ticket and let someone in from a computer.

Can I use my own scanner app instead?

Yes. Check-in runs through a REST API, and the endpoints are documented on the Scanner / API settings screen. The built-in scanner page and the API are independent switches, so you can run the API on its own.

Can the same ticket be used twice?

That is up to the product. Each ticket and pass has a maximum number of uses, and passes can have a cooldown so the same code cannot be scanned again immediately.

Is the QR code on its own enough to let someone in?

The QR code identifies the ticket. On passes that carry a photo, staff also see the cardholder photo at check-in and can compare it with the person in front of them.

I run nginx (or IIS). Is anything needed for the private files?

Not for the plugin to work: QR codes, PDFs and photos live under a folder with a random name and are served through the plugin, which checks the caller on every request, so a direct URL is not guessable. On Apache and LiteSpeed the plugin also drops an .htaccess deny into that folder as a second line of defence. You do not need to work this out yourself. Tickets & Passes > Settings > General has a "Private file protection" panel that detects your server and either tells you there is nothing to do, or shows the exact line to paste - click it to select it. nginx and IIS ignore .htaccess, so if you want the same belt-and-braces there, add this inside the server { } block that serves WordPress and reload nginx: location ^~ /wp-content/uploads/tpfw- { deny all; } It blocks direct HTTP to the plugin's upload folders only - not the rest of the media library, and not the plugin's own file route, which is PHP. On IIS, the equivalent goes in web.config as a URL Rewrite rule: <rule name="TPFW deny static tpfw uploads" stopProcessing="true"><match url="^wp-content/uploads/tpfw-" /><action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" /></rule> Leave index.php?tpfw_file=... alone in both cases - that is the route customers' links actually use.

Does it work with HPOS and the block checkout?

Yes. The plugin declares compatibility with WooCommerce High-Performance Order Storage and with the block-based cart and checkout, and the timeslot date picker works on block themes.

What happens to my data if I delete the plugin?

Settings, scheduled tasks and the Scanner role are removed. Your tickets, passes and check-in records are kept, so removing the plugin to test a conflict cannot wipe a season of admission history. If you do want all of it gone, add this to wp-config.php before you delete the plugin: define( 'TPFW_REMOVE_ALL_DATA', true ); That drops the plugin's database tables and deletes the generated QR codes, guest passes, PDFs and pass photos. It cannot be undone. Take a backup first.

Can customers print their tickets?

Yes. Every ticket, timeslot ticket and pass has a printable PDF download alongside the QR code on screen, from the Tickets or Passes tab in My Account.

Does deactivating remove anything?

No. Deactivating stops the plugin and clears its scheduled tasks. Settings and records are left alone, and reactivating picks up where you left off.

更新日志:

The three most recent releases are below. The full history is in changelog.txt in the plugin folder. 1.6.1 1.6.0 1.5.0