Docs Evenzo – Events Manager for WooCommerce

Waitlist

Waitlist#

When a ticket product sells out, the waitlist collects interested customers and emails them when stock comes back.

How the waitlist works#

  1. A ticket product goes out of stock
  2. A waitlist form replaces the add to cart area on the product page
  3. Visitors join with their email and the number of tickets they need
  4. When stock is restored, the earliest entries are emailed, one per unit of stock
  5. Each notified customer has a limited time to buy before the offer expires
  6. When an offer expires, the next person in line is emailed

The waitlist is tied to WooCommerce product stock, not to event capacity. It only works on ticket products that can go out of stock.

Enabling the waitlist#

Per product#

  1. Edit the ticket product
  2. On the General tab, find the options below the ticket settings
  3. Check Enable Waitlist
  4. Set Waitlist offer expires (hours). Leave it empty or 0 for no expiry
  5. Update the product

The fields only appear on products with Event Ticket ticked. Tick it and update the product first if the waitlist options are missing.

Global settings#

Events > Settings > Tickets has a Waitlist checkbox (“Enable waitlist by default for new ticket products”) and a Waitlist Offer Expiry field. These options are saved but not read by the waitlist code. Set the options on each product instead.

Waitlist form#

When a product is out of stock and the waitlist is enabled, visitors see:

  • Heading: “Join the Waitlist”
  • Email Address (required, hidden for logged-in users who use their account email)
  • Your Name (optional, guests only)
  • Tickets Needed (1 to 10, default 1)
  • Join Waitlist button

After joining, the message shows their position in the queue. Logged-in users who are already on the list see a notice instead of the form.

There is no filter for adding form fields.

Managing the waitlist#

Viewing the waitlist#

Go to Events > Waitlist. The page requires the manage_woocommerce capability.

The table shows:

  • (position)#

  • Name
  • Email
  • Product
  • Qty
  • Status
  • Date Added
  • Expires
  • Actions

Filtering#

Filter by:

  • Product (event ticket products)
  • Status (Waiting, Notified, Purchased, Expired)

Product meta box#

The product edit screen has an Event Waitlist side box showing the number of people waiting and a View Waitlist link.

Automatic notifications#

Trigger conditions#

Notifications are sent when:

  • Product stock is set to a value above 0 (woocommerce_product_set_stock). One entry is notified per unit of stock
  • A notified offer expires (hourly cron emwc_waitlist_expiration_check). The next entry is notified

The plugin also listens for emwc_ticket_cancelled, but the handler expects an event ID as the second argument and receives the attendee object, so cancelling a single ticket does not notify anyone.

Increasing event capacity does not trigger notifications. Only product stock does.

Notification email#

A plain text email sent with wp_mail. Subject: “Tickets Now Available - {product name}”. It contains a greeting, the product name, the expiry time (if set), and a link to the product page.

The email is not a WooCommerce email and has no template. Use the emwc_waitlist_notification_sent action to send your own message.

Expiration#

  • Set per product in hours
  • Entries whose offer passed are marked Expired on the next hourly cron run
  • The next waiting entry is notified at the same time

Manual actions#

Actions appear in the last column of Events > Waitlist for entries with the Waiting status.

Notify#

  1. Find the entry
  2. Click Notify
  3. The entry is marked Notified, the email is sent, and the expiry timer starts

Remove#

  1. Find the entry
  2. Click Remove
  3. Confirm. The entry is deleted and positions shift up

Waitlist statuses#

StatusDescription
WaitingIn queue, not yet notified
NotifiedEmail sent, waiting for purchase
PurchasedShown in the filter, but the plugin never sets this status
ExpiredOffer time passed without a purchase

Entries are not marked Purchased when the customer buys. Remove them by hand once they have ordered.

Integration#

WooCommerce stock#

Stock drives everything:

  • Out of stock = form shown
  • Stock restored = notifications sent
  • Stock quantity = number of entries notified

If stock management is off, a product that comes back in stock notifies one entry.

Multiple ticket types#

Each product has its own waitlist. A customer on the waitlist for one ticket type is not notified when another type comes back in stock.

Hooks#

// Someone joined the waitlist
add_action( 'emwc_waitlist_joined', function( $entry_id, $product_id, $email ) {
    // $entry_id is the row ID in wp_emwc_waitlist
}, 10, 3 );

// Notification email sent
add_action( 'emwc_waitlist_notification_sent', function( $entry, $product ) {
    // $entry is the waitlist row as an array, $product is a WC_Product
}, 10, 2 );

Data lives in the wp_emwc_waitlist table: id, product_id, event_id, user_id, email, name, quantity, status, notified_at, expires_at, created_at.

Set a sensible expiry#

  • Too short: people miss the window
  • Too long: others wait for nothing
  • 24 to 48 hours works for most events

Watch the list#

  • Remove entries that have bought tickets
  • Long queues mean demand for more dates or a bigger venue