Skip to content
GPLWP Guides

How to sell event tickets on a WordPress site

Booking & Events Time About 30–60 minutes 7 steps Updated 4 Sep 2026

BOOKING & EVENTS
The short answer

WordPress does not include complete event ticketing by itself. You can use a WooCommerce virtual product for a simple paid registration, but a ticketing plugin is the practical choice when you need ticket limits, attendee records, confirmation emails, discounts or check-in.

The route
  1. 01Define the ticket rules
  2. 02Choose the manual route
  3. 03Install a ticketing system
  4. 04Create the event and tickets
  5. 05Connect payment and attendee details
  6. 06Test sales and manage attendance
  7. 07Take the fast route

What you need

  • A WordPress site with admin access
  • A payment account such as PayPal or Stripe
  • An event date, capacity and ticket types
  • An email delivery method configured for WordPress

Define the ticket rules

Write down the event date, venue or meeting URL, total capacity, ticket types, prices, sale dates and refund policy. Decide whether one buyer can purchase several tickets and whether you need the name and email address of every attendee.

Do not leave capacity until later. If stock is not connected to the checkout, two people can buy the last place at the same time.

Choose the manual route

For a small event, create a WooCommerce product for each ticket type, mark it as virtual, set the price and limit its stock. Add the event details to the product description, then use the order confirmation email as the registration receipt.

This route is acceptable when you only need to collect payment and can manage the attendee list yourself. Standard WooCommerce does not provide proper ticket records, attendee fields, ticket delivery or event reporting, so it becomes awkward as volume grows.

Install a ticketing system

For real ticket sales, install an event and ticketing solution rather than building the process from separate products and forms. You need a system that connects each ticket to an event, manages stock, records attendees and completes payment before treating a registration as valid.

Paid event ticketing cannot be completed reliably with WordPress alone unless you develop these functions yourself. The ticketing system must also handle failed payments, refunds and cancelled orders without leaving false attendees behind.

Create the event and tickets

Create the event with its title, date, time, location and description. Add separate ticket types such as General admission, VIP and Early bird, then set each ticket's price, available quantity and sale window.

Save the event before testing the public page. Ticket systems commonly attach ticket records to a published event, and a ticket that is created but not properly attached or published may not appear to visitors.

Connect payment and attendee details

Connect PayPal or Stripe, configure the currency and return pages, and decide what information is collected at checkout. If a buyer can purchase several tickets, enable individual attendee collection when you need every person's name or email rather than only the purchaser's details.

Send confirmation and ticket emails from a properly configured domain mailbox. Test a successful payment, a failed payment, a refund and a multi-ticket order before advertising the event. Individual attendee collection can be enabled globally or for a specific ticket.

Test sales and manage attendance

Place a real or test order from an incognito browser on a phone. Check that stock decreases, payment status changes, the purchaser receives the expected email and the attendee appears in the admin list. Also verify that the event stops accepting sales at capacity or after its closing date.

On the event day, export or search the attendee list and decide how staff will check people in. Keep backups of the list. A payment can succeed while an email is delayed, so use the order or attendee record as the source of truth rather than relying on inbox searches.

Take the fast route

Use The Events Calendar Event Tickets Plus when you want event pages and ticket sales managed in WordPress. It supports ticket types, PayPal and Stripe through its supported commerce options, attendee information, discount codes, recurring events and attendee management.

Install the required event and ticket components, create the event, add ticket types, connect payments and run the same checkout tests. Choose this route when manual WooCommerce products would leave you maintaining stock and attendee records by hand.

The fast route

Let The Events Calendar Event Tickets Plus do it

Event ticketing with PayPal, Stripe, recurring events, discount codes, and attendee management for in-person or virtual events.

Get The Events Calendar Event Tickets Plus

Sources

  1. woocommerce.com /products/woocommerce-box-office/?utm_source=openai
  2. docs.theeventscalendar.com /apis/orm/create/attendees/?utm_source=openai
  3. docs.theeventscalendar.com /apis/orm/create/tickets/?utm_source=openai
  4. theeventscalendar.com /knowledgebase/enabling-attendee-information-for-tickets/?ut…
  5. github.com /the-events-calendar/event-tickets/blob/main/readme.txt?utm_…

Questions

Can I sell event tickets with WordPress without a plugin?
Not as a complete ticketing system. You can take payment with a WooCommerce virtual product or a payment form, then maintain the attendee list manually. That is fine for a small event with simple registration, but stock limits, individual attendee details, ticket emails, refunds and check-in require custom development or a ticketing plugin.
Can WooCommerce sell event tickets?
Yes, WooCommerce can sell a virtual product as a basic ticket. On its own, however, it does not know that the product represents an event or provide dedicated attendee management, ticket delivery and event reporting. Use it for simple registration, or connect it to a ticketing extension when those functions matter.
How do I stop an event from overselling?
Set a stock quantity for each ticket type and test the checkout when only one ticket remains. Use one system as the stock source, because a separate form, payment link or manually edited spreadsheet can accept sales after the online capacity is gone. Also test unpaid, cancelled and refunded orders before opening sales.
How can I collect the names of everyone attending?
Enable individual attendee collection rather than collecting only the purchaser's details. This lets a buyer enter information for each ticket, which you can then search or export for attendance administration. Make the fields required only when you genuinely need them, because extra checkout fields can slow purchases.