WordPress
Event Ticket Sales and Registration in WordPress: From Calendar to Payment

In practice, WordPress event registration has three layers: a calendar with the event description, a form people use to sign up, and payment. The easiest way to handle payment is WooCommerce. This setup works well for small and medium businesses that run training courses, workshops, webinars or meetups in a physical store. We start from our earlier guide to event calendars from September 2022. That one was about showing dates on your site. This one goes further, to registration and payment.
Table of Contents
Where do you start with WordPress event registration?
First, settle a few things. Is the event free or paid? Is there a limit on places? Do you have several ticket types? The answers decide which tools you need. A free webinar can run on a form alone. A paid training course with a discounted ticket is a job for your store. Before you click anything in the dashboard, answer a few questions:
- type of event - training, workshop, webinar, on-site meeting,
- the limit on places and what happens when it runs out,
- the details you really need from each attendee,
- payment method: online, bank transfer, on site or none,
- the confirmation message attendees get after signing up,
- who is responsible for the attendance list.
The description, date, venue and signup button should all sit on one event page. If people have to jump between pages, many of them drop off halfway. And that’s the last you’ll see of them.
An event calendar on your site: the foundation attendees see
Each event gets its own page: date, time, venue, description, image. And the list of upcoming dates should be reachable from one place. In my view, a separate content type for events beats regular blog posts. The dashboard stays tidy, editing a date doesn’t get mixed up with articles, and events get their own archive.
That is how the K4.pl Event Calendar plugin works. It adds an „Event” post type with fields for date, time, venue, description and images. The [events] shortcode shows a list of upcoming events (or events from a chosen date range) on any page or post, and you can match the look of the list to your site in the settings. The plugin gets regular updates and comes with technical support.
Categories and tags? From the first event, not the tenth. Splitting events into training, webinars and local meetups lets attendees go straight to what interests them instead of scrolling through the whole list.
Free attendee registration: a form and a confirmation
For free events, all you need is a signup form on the page of the event plus an automatic confirmation email. Only collect the fields you will actually use: name, email address, maybe company name. Every extra field is one more reason for someone to close the tab.
An event signup form has to say why you process the data and who the data controller is - GDPR (RODO in Poland) requires it. The details of consents are best discussed with whoever handles data protection in your company.
You can handle the limit on places in two ways. Either you close registration by hand once you’re full, or you set a submission counter in the form. For popular dates, a waiting list helps too. Someone cancels, you invite the next person, and the room stays full.
Selling tickets in WordPress: paid events in WooCommerce
The simplest way to sell a paid event is as a WooCommerce product. Why? Because your store already has a cart, payment gateways, invoices and order confirmation emails. You don’t build a separate system, you use what already runs your sales. Here is the setup:
- Create a virtual „ticket” product linked to a specific event.
- Set the stock level to the number of places.
- Add variations for ticket types, for example standard and discounted.
- Add checkout fields for attendee details.
- Link the product from the event page.
- Place a test order and check the email sent after purchase.
A virtual product is one that isn’t shipped, so checkout doesn’t ask for a delivery address and buying is quicker. Oh, and watch out for orders of several tickets at once. By default WooCommerce saves the buyer’s details, so add fields for the name and email of each attendee. Otherwise your attendance list will only show the names of the people who paid (and they aren’t always the people who turn up).
How do you join the calendar, registration and payment into one process?
It all revolves around the user’s path: event list, event page, signup or buy button, payment, confirmation. No unnecessary redirects along the way. Every extra step is a place where someone can get lost.
Update the date and number of places in one place. You change the date in the calendar but forget the product? The attendee gets conflicting information. Same with a sold-out course that still looks available in the calendar. A classic.
Hide past events from the upcoming list, but don’t delete their pages. They stay in search results and show what has already happened at your place. And when ready-made tools don’t fit unusual registration rules, Web Systems, which runs K4.pl, builds custom plugins.
After signup: reminders, attendee lists and refunds
The work doesn’t end at signup. You need an attendee list export, a reminder before the date and a clear cancellation policy. Exporting WooCommerce orders or form submissions to a spreadsheet gives you a ready attendance list. Print it or tick names off on a tablet, whichever you prefer.
An email reminder a day or a few days before the event cuts down the number of people who simply forget. Include the address, the link to the online meeting and the start time.
Set out the refund rules and what happens if the event is cancelled in your terms and conditions before sales start. When in doubt - ask a lawyer. Overall, well-planned WordPress event registration means a calendar, a form and payment working as one predictable path for the attendee. Nothing more, nothing less.
Frequently asked questions
Do I need WooCommerce to sell event tickets?
For online payments, WooCommerce is the simplest route in WordPress, because it gives you a cart, payment gateways and order confirmations. For free registration, a form on the event page with an automatic email is perfectly enough.
How do I set a limit on places for a paid event?
Turn on stock management in the ticket product and enter the number of available places. Each purchase reduces the stock, and once it sells out, the product can no longer be bought.
How do I show a list of upcoming events on the home page?
Put the event list shortcode in the content of the home page or any post. You can show all upcoming dates or only those from a chosen date range.