Promo codes
Promo codes let you offer percentage or fixed-amount discounts on ticket purchases. Codes integrate with WooCommerce cart and checkout, track usage per customer, and automatically reverse on refund.
Creating a promo code
- Go to Events → Promo Codes in your WordPress admin.
- Click Add New.
- Fill in the form:
| Field | Notes |
|---|---|
| Code | 3-32 characters: letters, numbers, dashes, underscores. Auto-uppercased on save. |
| Discount Type | Percentage or Fixed Amount. |
| Amount | Discount value. Percentage codes cap at 100%. |
| Usage Limit | Total redemptions allowed across all customers. 0 = unlimited. |
| Per-Customer Limit | How many times a single customer can use this code. 0 = unlimited. |
| Start Date / End Date | Optional validity window. Leave blank for no date restriction. |
| Event | Restrict to a specific event. Leave blank to apply to all events. |
| Minimum Tickets | Minimum ticket count in cart for the code to apply. |
- Click Save Promo Code.
Managing existing codes
The Promo Codes list table supports:
- Search by code name
- Filter by status: Active, Inactive, Expired
- Bulk actions: Activate, Deactivate, Delete
- Sort by code, discount type, amount, usage, or status
Each row shows current usage (e.g., 12 / 50) so you can see how often a code has been redeemed.
How codes work at checkout
- The customer enters a promo code in the WooCommerce checkout Promo Code field.
- Pro validates the code: exists, is active, within the date range (if set), within usage limits, applies to the cart’s events, and meets the minimum ticket count.
- If valid, the discount is applied and the savings amount is shown in the order totals.
- On successful order completion, usage is incremented – both the global counter and the per-customer counter.
- If an order containing a promo code is refunded, the usage is reversed once per order so that code doesn’t permanently consume a slot against the customer’s per-customer limit.
Error messages
If a code fails validation, the customer sees a specific reason:
- “This code has expired” – end date passed
- “This code is not yet active” – start date in future
- “This code has reached its usage limit”
- “You’ve already used this code the maximum number of times”
- “This code doesn’t apply to the events in your cart”
- “This code requires at least N tickets”
Tips
- Create a “always on” welcome code (e.g.
WELCOME10) with per-customer limit 1 and no usage limit for first-time buyers. - Use the date range to run short-window sales without having to remember to deactivate the code.
- The event-specific field lets you support artist- or presenter-specific discounts that don’t apply to other shows.