Ticket Types & Configuration
Ticket Types & Configuration
Every event needs a way for people to register or buy in. Tickets Please gives you two ticket types: RSVP tickets for free events where you just need a headcount, and Paid tickets that route through WooCommerce checkout for events that charge admission. Both types share the same configuration fields and capacity system.
RSVP vs. Paid Tickets
The ticket type determines the registration flow visitors experience.
RSVP tickets are free. When a visitor registers, an inline form appears on the event page. No cart, no checkout, no payment. The visitor enters their name and email, submits, and receives a confirmation. Use RSVP tickets for free community events, volunteer sign-ups, open houses, and any event where you need to track attendance without collecting payment.
Paid tickets have a price and use WooCommerce for checkout. When a visitor clicks Add to Cart, the ticket is added to their WooCommerce cart. They proceed through standard WooCommerce checkout with whatever payment gateways you have configured. Attendee records are created when the order is completed. Use paid tickets for concerts, classes, fundraisers, and any ticketed event.
The ticket type is determined by the price. A ticket with a price of 0 (or blank) behaves as an RSVP ticket. Any price greater than zero creates a paid ticket.
Creating a Ticket
- Go to Events > Tickets > Add New in the WordPress admin.
- Enter a ticket name (required). This is what visitors see on the event page.
- Fill in the configuration fields described below.
- In the Event dropdown, select the event this ticket belongs to. Each ticket links to exactly one event.
- Click Publish.
You can also create tickets directly from the event editor. The Tickets meta box at the bottom of the event edit screen lets you add and manage tickets without navigating away.
Ticket Fields
| Field | Meta Key | Required | Description |
|---|---|---|---|
| Name | Post title | Yes | The ticket name displayed to visitors |
| Description | _ticket_description | No | Longer text about what the ticket includes |
| Show Description | _ticket_show_description | No | Toggle to display or hide the description on the event page |
| Price | _ticket_price | No | Ticket price. Blank or 0 makes it an RSVP ticket |
| Sale Price | _ticket_sale_price | No | Discounted price. Leave blank for no sale |
| Sale Start Date | Sale start meta | No | When the sale price takes effect |
| Sale End Date | Sale end meta | No | When the sale price expires |
| Capacity | _ticket_capacity | No | Maximum number of attendees. Set to -1 for unlimited |
| SKU | _ticket_sku | No | Stock keeping unit. Auto-generated as TP-{TICKET_ID}-{HEX} if left blank |
| Visibility | _tec_ticket_visibility | No | public (default) or hidden |
| Access Token | _tec_ticket_access_token | No | Auto-generated token for hidden ticket URLs |
Pricing and Sale Prices
Set the Price field to the regular ticket price. If you want to run a temporary discount, fill in the Sale Price along with the Sale Start Date and Sale End Date.
During the sale window, the event page shows the sale price with the original price displayed as a strikethrough. Outside the sale window, the regular price applies automatically. The is_on_sale() method checks both the sale price value and the date window to determine whether the discount is active.
If you leave the sale price blank, no sale runs regardless of the date fields.
SKU Generation
Every ticket gets a SKU. If you provide one manually (for integration with inventory systems or reporting tools), Tickets Please uses it as-is. If you leave the SKU field blank, the plugin auto-generates one in the format TP-{TICKET_ID}-{RANDOM_HEX} when the ticket is published.
SKUs appear in WooCommerce orders, CSV exports, and attendee records. They are useful for reconciling ticket sales across systems.
Visibility
By default, tickets are public and appear on the event page for everyone. Set visibility to hidden to remove the ticket from the public listing. Hidden tickets are only accessible via a private URL that includes the ticket’s access token.
The access token is auto-generated when you set a ticket to hidden and is displayed as a read-only field on the ticket edit screen. See Hidden Tickets for the full details on how private ticket URLs work.
Linking Tickets to Events
Each ticket is linked to one event through the _ticket_event_id meta field. You set this when creating the ticket by choosing an event from the dropdown. An event can have multiple tickets (e.g., General Admission, VIP, Early Bird), but each ticket belongs to a single event.
To move a ticket to a different event, edit the ticket and change the event selection. Existing attendees remain linked to the ticket regardless of which event it points to.
Common Questions
Can I create tickets for pages or posts, not just events? Currently, tickets can only be attached to events. Support for other post types is planned for a future release.
Can I have both RSVP and paid tickets on the same event?
Yes. Add multiple tickets to the event with different prices. A ticket priced at 0 renders as an RSVP form, and tickets with a price route through WooCommerce. Both appear in the ticket section on the event page.
How do I delete a ticket? Move the ticket to the Trash from the tickets list or the ticket editor. Trashing a ticket does not delete attendees already registered for it.
Can I change a ticket’s price after people have bought it? Yes. The price change applies to future purchases only. Existing orders and attendees are not affected.
What is the difference between Description and Show Description? The Description field stores the text. The Show Description toggle controls whether that text appears on the event page. This lets you write a description for admin reference without displaying it publicly.
How do I create a free paid-style ticket (no RSVP form)?
Set the price to 0 with WooCommerce active. Tickets Please treats zero-price tickets as RSVPs with the inline form. If you need a cart-based flow for a free ticket, set the price to 0.01 or use a WooCommerce coupon for 100% off.
Next Steps
- Capacity Management — understand individual, shared, and unlimited capacity
- RSVP System — details on the RSVP registration form and submission flow
- Hidden Tickets — set up invite-only or pre-sale tickets with private URLs