Event Tickets Registrations
Adds a rename-able "Registrations" tab to event pages created by The Events Calendar (TEC) that are configured to use Event Tickets (ET) and further enhanced by Event Tickets Extra Custom Fields (ETECF). Registrants are neatly grouped in a table on the "Registrations" tab by section previously declared by ETECF.
Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/christefano/wp-etr/releases/download/v5.2.10/wp-etr-v5.2.10.zipEvent Tickets Registrations (ETR)
Adds a rename-able "Registrations" tab to event pages created by The Events Calendar (TEC) that are configured to use Event Tickets (ET) and further enhanced by Event Tickets Extra Custom Fields (ETECF). Registrants are neatly grouped in a table on the "Registrations" tab by section previously declared by ETECF. Sections, the section options, and the attendee fields themselves are all managed by ETECF.
ETR was built for the McMinnville Chess Club, but it has been generalized to be used for any WordPress site using The Events Calendar (TEC), Event Tickets (ET), and Event Tickets Extra Custom Fields (ETECF) for chess tournaments or really any type of event. Please note that it hasn't been tested with Event Tickets' RSVP feature or optional WooCommerce integration.
If you find this plugin useful, consider making a donation to the McMinnville Chess Club!
Requirements
Features
-
Per-event toggle. The "Event Registrations" meta box on the event edit screen turns on the "Registrations" tab and can hide individual sections for that event.
-
Display. On a single event with Event Registrations enabled, the event info splits into rename-able "Tournament Details" and "Registrations" tabs. Sections follow the ETECF option order and empty sections are skipped. Rows are sorted by descending rating (anything blank, e.g. an unrated player, is displayed last) and then by name. The rename-able "Registrations" tab shows a live count (turn on or off in Settings), and the total number of current registrations is shown at the bottom.
-
Shortcode.
[etr_registrations event="123"]embeds a table anywhere (defaults to the current event, or the most recently created event when used somewhere other than on an event page). -
Editor tools. Users who can edit the event get extras that stay hidden from the public: click any name to open a card showing all of that attendee's fields, and from that card mark (or clear) the player as a no-show. No-shows sink to the bottom of their section, are struck through, and don't get a pairing number (making pairing a bit easier).
-
Exports. A "Print" button opens a clean, print-ready wall sheet (one section per page for now) and is available to everyone. Users who can edit the event also get "Download CSV" and "Pairing export" buttons. The "Pairing export" botton formats one player per row (last name, first name, USCF ID, rating, section) for import into pairing software such as SwissSys or WinTD. Both exports end with a Status column that flags no-shows.
-
Tournament Manager import. When the Tournament Manager plugin is active, TDs see a "Create tournament" button next to "Pairing export" (labeled "Import to Tournament Manager" before ETR 5.2.7). It creates (or reuses) the tournament linked to the event and hands the roster straight to Tournament Manager's import preview screen so no CSV download / upload round trip needed; the button disables itself and shows "Creating tournament..." while the page navigates so a slow load doesn't invite a second click. A "Validate players" button also appears, and this checks every registered player's USCF membership status against the USCF ratings API through the event's end date, and shows the results (name, USCF ID, status, expiration, and verdict). ETR just adds the button, and USCF validation is in Tournament Manager.
-
Tab extensibility (developers). The event page's tab UI is extensible via the
etr_event_tabsfilter, applied identically from the main two-tab (the_content) render path and from the TEC block-template fallback, so a plugin only has to hook once to appear on both. The filter receives( $tabs, $event_id )and must return the (possibly modified)$tabsarray; each tab isarray( 'id' => 'my-tab', 'label' => 'My Tab', 'html' => '...' ).labelis plain text (escaped when rendered);htmlis emitted unescaped, so it is the callback's responsibility to output only already-safe markup, the same contractthe_contentitself uses. Core tabs ("Tournament Details" and "Registrations") are always first; filtered-in tabs append after them in the order returned. Each tab also gets a permanent URL fragment,#tab-{id}, that opens it directly on load and can be bookmarked, linked to, or put on a QR code (the older#etr-tab-{id}form, and the original bare#registrations, still open the matching tab on load too, for links written before#tab-{id}became canonical) - see Tournament Manager'sWPMTM_Frontend::filter_etr_event_tabs()for a real-world consumer (its Standings / Wall chart / Round entry tabs). On a single event's tab UI, only the "Details" tab (iddetails) shows the TEC "Add to calendar" widget and the Event Tickets "Get Tickets" form, which both render outside the tab panels themselves; every other tab hides them via adocument.body[data-etr-active-tab]attribute thatassets/etr-tabs.jskeeps in sync (see the CSS rules inassets/etr-registrations.cssfor the exact selectors, which are theme/TEC-version dependent). -
Sections. Sections are optional and each can be checked on and off on the event edit page.
-
Ratings support. If
etecf_uscf_ratingfields are configured in ETECF, USCF IDs entered in as fullratings.uschess.orgprofile URLs are displayed as numeric member IDs and USCF rating values are turned into links that point to players' profiles atratings.uschess.org. Note that ratings are self-reported by attendees themselves during registration and need to be verified by a TD. -
Field mapping. Event Registrations → Settings. Choose which ETECF fields provide the section, first name, last name, USCF ID, and rating. Defaults:
etecf_section,etecf_first_name,etecf_last_name,etecf_uscf_member_id,etecf_uscf_rating. -
Profile pictures. When an event has "Show profile pictures" turned on (in the same Event Registrations meta box as the Registrations tab toggle), every registrations table gets a photo column. Attendees show their ETECF profile photo (the
etecf_profile_photoImage field) at a fixed 40x40; anyone without a saved photo shows a plain silhouette placeholder instead, so the column always lines up. -
Demo mode. Event Registrations → Tools. Adds test registrants to a chosen event so the Registrations tab, exports, and photo column can all be exercised without a real ticket sale. The event needs at least one ticket already (a free RSVP or $0 ticket works): test registrants reference that ticket the same way a real attendee would, and an event with no ticket at all is refused with an error notice rather than creating registrants Event Tickets can't render. Demo mode draws from a fixed pool of 50 real, currently-active US Chess members with real USCF IDs and real ratings (sourced from the USCF ratings API, so they pass the same USCF validation Tournament Manager runs) and never adds more than 50 registrants total per event; pick how many to add (1-50, default 5) and which section to put them in (free text, with suggestions drawn from ETECF's section field when one is configured). Test registrants are
tec_tc_attendeeposts with no order behind them, so they are not real sales: Event Tickets' own Attendees screens list them without an order to link to, and ticket stock, ticket sales, and revenue are all untouched. Players with a public-domain (or CC0) Wikipedia portrait get it sideloaded into the photo field automatically; everyone else gets the same silhouette placeholder as a real registrant with no photo. A "Remove all test registrants" button clears every test registrant from the selected event (and only that event) once you're done, including any portraits it sideloaded. On a site WordPress reports as a production environment, adding test registrants requires an extra confirmation checkbox, since they'll be visible next to real registrants until removed.
Uninstall
Removes etr_options and ETR's post meta (_etr_show_registrations, _etr_hidden_sections, _etr_status, _etr_show_photos, _etr_test_used, _etr_test_avatar_ids, _etr_test_registrant). ETECF data is left alone. Leftover test-registrant posts themselves (attendees, the placeholder order, sideloaded test-avatar attachments) are not deleted on uninstall (they live in Event Tickets' and the media library's own post types, not in any of ETR's own data) - use "Remove all test registrants" in Tools first.
Releases
10 releases. Each count is every asset in that release; expand a row for the breakdown.