{
  "id": 10279142,
  "title": "Moving off Event Tickets Plus: what your WooCommerce ticket data looks like",
  "url": "https://urgent.news/2026/09/27/moving-off-event-tickets-plus-what-your-woocommerce-ticket-data-looks",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-27T19:22:35.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/jeffreyinman/moving-off-event-tickets-plus-what-your-woocommerce-ticket-data-looks-like-2akm"
  },
  "original_language": "en",
  "account": "Event Tickets Plus offers event ticket sales via WooCommerce. When migrating away from this plugin, due to factors like Liquid Web changes or leaving The Events Calendar, handling ticket and attendee data correctly is crucial. This source explains the data structure in the database and common migration pitfalls.\n\nThe plugin maps each ticket to a WooCommerce product, using _tribe_wooticket_for_event for the event ID and _tribe_ticket_capacity for ticket capacity (-1 indicates unlimited). The price is the product price. Each attendee is a separate tribe_wooticket post, equal to one sold ticket. These attendees link back to the event, ticket, order, and order item records.\n\nMigrations can fail when unpaid orders are treated as attendees, or when orders in pending or on hold status are mistakenly included. Only completed and processing orders should be imported as paid attendees. For newer WooCommerce stores, orders may reside in the wc_orders table due to High-Performance Order Storage (HPOS), requiring a different query approach.\n\nWhen moving tickets, the buyer may represent multiple guests. Use available attendee names and emails first, falling back to order billing details if necessary. Ticket types combine into a single price when using Event Tickets Plus, which could lose detail when migrating to a plugin that only supports one price per event per event. This can leave existing attendees without a record of their purchase type.\n\nMigrations should not send confirmation emails to each attendee. Verify the importer is silent during testing on real data. Before migration, back up the database, including WooCommerce orders, and compare paid attendee counts in WooCommerce to the expected number post-import. Run the import while Event Tickets Plus is active, double-checking one event with multiple ticket types and a refunded order. Ensure capacities reflect the imported attendees to avoid overbooking.\n\nOnce validated, deactivate the old plugins. For those considering Beacon Events, it's a free WordPress plugin with a paid add-on, Beacon Events Pro. The Pro version imports Event Tickets Plus data, treating each ticket as its own type with associated price and capacity. Every attendee is listed under their name, linked to the WooCommerce order, and includes unpaid orders in the report without sending any emails. A 14-day free trial is available without a card.",
  "summary": "Event Tickets Plus sells your event tickets through WooCommerce. If you're moving off it, whether because of the Liquid Web changes or because you're leaving The Events Calendar altogether, the tickets and attendees are the part that's easy to get wrong. Here's what that data looks like in your database and where a migration usually breaks. Disclosure: I build Beacon Events, a WordPress events…",
  "key_points": [
    "Event Tickets Plus integrates with WooCommerce for ticket sales",
    "Migration pitfalls include unpaid orders and pending statuses",
    "Beacon Events Pro handles Event Tickets Plus data import"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}