Moving off WP Event Manager: what's in your database and what breaks
WP Event Manager is on about 20,000 sites. The core plugin is free; recurring events, ticket sales and registrations are paid add-ons. If you're leaving it, or just want your events out in a form another tool can read, here's how it stores them. I read this from version 3.4.1, mostly the code that saves an event from the admin screen and the front-end form. Where your events live Each event is a…
WP Event Manager powers around 20,000 WordPress sites. It is a free core plugin with paid add-ons offering recurring events, ticket sales, and registrations. When migrating away from WP Event Manager, it's essential to understand what remains in your database and what might break.
The plugin stores events as posts of type "event_listing." Event details like title, description, and featured image are stored as expected. Dates are held in _event_start_date and _event_end_date, using local time. The _event_timezone field stores the event's time zone, while _event_online indicates if the event is online (yes/no). Event locations, pins, and countries are saved directly on the event post. Organizers and venues are separate post types, linked to events via _event_organizer_ids and _event_venue_ids.
Categories are stored in the event_listing_category taxonomy, while event types use a second taxonomy, event_listing_type. The banner image URL is found in _event_banner, while ticket choices and prices are in _event_ticket_options and _event_ticket_price.
When moving away from WP Event Manager, be aware of several traps. First, event addresses belong to the event itself, not the venue. Migrating venues alone will lose every address, so building each venue's address from its events is crucial. Second, dates might not always be in the format Y-m-d H:i:s. If the plugin can't parse a date during save, it stores what was typed, using your site's date format.
Check for these rows before copying data directly. Third, past events have their own status, "expired," which the plugin registers. Deactivating the plugin removes this status, so the admin screens and anything built on WP_Query may no longer recognize these posts. Lastly, the _event_timezone field may not always be relevant, as the plugin only uses it when its timezone setting is "each_event." Before applying this field, check the option or leftover values may move events by hours.
Additionally, event types are separate labels from categories, with their own /event-type/ slugs and pages. Decide whether these should become categories or tags in your new system and adjust redirects accordingly. Remember, add-ons like ticket sales and registrations don't live on the event post and should be migrated or archived separately.
Before switching to a new system, run a date query to fix any rows returned. Check the _event_manager_timezone_setting and export your data while the plugin is still active, including expired events. Write down your three URL bases and decide where event types will reside. Finally, check that the /event/ and /event-category/ URLs remain functional, as they might need adjustment based on your chosen settings.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.