{ "name": "Event Espresso 4 - Event Companion", "slug": "eea-event-companion", "version": "0.11.0", "download_url": "https://gitea.mulligan.casa/ee-extensions/foh-updates/raw/branch/main/eea-event-companion/eea-event-companion-0.11.0.zip", "homepage": "https://gitea.mulligan.casa/ee-extensions/eea-event-companion", "requires": "6.4", "tested": "7.0", "requires_php": "8.1", "last_updated": "2026-06-25 00:16:36", "icons": { "1x": "https://gitea.mulligan.casa/ee-extensions/foh-updates/raw/branch/main/eea-event-companion/icon-128x128.png", "2x": "https://gitea.mulligan.casa/ee-extensions/foh-updates/raw/branch/main/eea-event-companion/icon-256x256.png" }, "author": "Mike Mulligan", "author_homepage": "https://gitea.mulligan.casa/mmulligan", "tags": [ "event espresso", "companion app", "pwa", "schedule", "announcements", "push notifications" ], "sections": { "description": "
Event Companion adds an attendee-facing progressive web app (PWA) to any Event Espresso event. Attendees access the companion via a QR code or short link, authenticate with a magic link tied to their registration, and get a mobile-native experience with:
\nAll configuration is per-event from wp-admin under the Event Espresso menu. The companion is general-purpose and organization-agnostic.
\nSelf-contained on Event Espresso. The companion works on a plain Event Espresso install. No additional plugins are required.
", "installation": "wp-content/plugins/ and activate it. Activation creates the companion tables.Does this require any other plugins?
\nOnly Event Espresso 4. The companion is fully self-contained.
\nHow do attendees access the companion?
\nVia a magic link sent to the email on their registration, or by scanning a QR code at the event.
", "changelog": "0.11.0
\n* App identity is now site-wide. The installed app's name, home-screen icon, splash, and base accent colour are set once for the whole site/organisation (Event Companion → App Settings → \"App Identity\"), independent of any single event. The install name now follows your App Name (or the site name) instead of the generic \"Event Companion\", and the icon follows your chosen icon everywhere — including at shared /g/… links. (Per-event Design themes still apply as in-app skinning when an event is in focus.)
\n* Announcements can be org-wide. A new \"Show org-wide\" toggle (on by default) makes an announcement visible across the whole app — even before anyone has picked an event — instead of only inside one event. Turn it off to scope an announcement to a single event.
\n* Clear publish controls for announcements. The announcement editor now has explicit Publish now, Schedule, and Save draft buttons. (Previously, leaving the time blank silently saved a hidden draft.)
0.10.0
\n* Schedule entries can now carry tags (e.g. keynote, workshop, food). Attendees see tag chips on each session and can filter a schedule by tag, right on the schedule view.
\n* New optional All Schedules view: turn it on per event (Schedule tab) to add an \"All\" tab at the front that merges every schedule's sessions in time order, grouped by day, each labelled with its source schedule. Its tag filter spans every schedule. Exclude individual sessions from the combined view from the entry editor.
\n* Tags and the All-Schedules settings travel through Export / Import.
0.9.0
\n* Venue maps can now use a vector floorplan (an SVG export from Inkscape, Illustrator, or similar) as the base, with a per-map background colour — upload one when adding or editing a map. Uploaded SVGs are sanitized on upload, on serve, and on import.
\n* New element binding: instead of re-tracing rooms by hand, pick any area already drawn in the floorplan — through a structure tree of its layers, groups, and shapes — and turn it into a tappable Space. Each bound Space gets its own resting and focused-state highlight colour and opacity, and the floorplan's own room outlines light up on the map.
\n* Drawn polygon Spaces still work and mix freely with bound ones on the same map; convert either way (detach a bound Space to a point, or bind a drawn/point feature to an element). The vector floorplan and its bindings travel through Export / Import.
0.8.0
\n* Venue maps can now have Spaces — tappable polygon regions (rooms, zones) you draw right on the map. Each Space carries an optional highlight colour, fill opacity, zoom-to-fit on focus, and a centroid marker, and works as a schedule location and a tap target just like a pin.
\n* Rebuilt map editor: a toolbar to place pins or draw Spaces (click corners to close), full corner editing (drag, double-click an edge to add, Delete to remove), and a docked options panel for the selected feature — replacing the old prompt() dialogs.
\n* Pins and Spaces can now do more on tap: show a basic info popup (a short blurb, without leaving the map), or act as a navigation link to another location or map (a picker appears when there's more than one destination). Either can also display an optional glyph icon.
\n* Map saves keep stable ids, so schedule locations, links, and deep-links survive an edit; navigation links remap correctly across export and import.
0.7.0
\n* Added a color-coded plugin icon (delivered through the update channel) and declared WordPress 7.0 compatibility. No functional change.
0.6.0
\n* Web push notifications: attendees can opt in from the News tab to be notified when an announcement is published (deep-linking to the linked session when set). Generate the signing key under App Settings → Web Push. Self-contained — no extra service required; iOS install-gated.
\n* The home \"Happening now / next\" ribbon now flags a live or upcoming session that has linked announcements with a 📣 count.
0.5.0
\n* Announcement ↔ session linking: an announcement can point at one schedule session. The attendee app shows a tap-through session chip on the announcement card and a \"Related updates\" list on the session page; set the link from the new \"Related session\" picker in wp-admin (grouped by schedule, times in the event timezone). Deleting a session cleanly unlinks its announcements.
0.4.0
\n* Installed PWA branding: the home-screen icon, iOS splash, and theme color now follow the live event's branding (cascade: live event → a new site-wide default → plugin default), instead of the static default. New \"Default App Branding\" controls on the App Settings tab set the site-wide fallback. Manifest is cache-busted (versioned link + ETag) so changes reach installed apps within the cache window.
\n* Import / Export: package an event's whole companion config as a hand-authorable ZIP and import it (merge or replace) into another event — pages, schedules, maps/pins, app/design, shortlinks, feedback form, with bodies and images carried as asset tokens. wp-admin tab + WP-CLI (wp eea-ec export|import); untrusted-ZIP hardened; fully atomic.
\n* Fixed: the home short link no longer mints a duplicate on repeat calls.
0.3.0
\n* Attendee PWA: event-aware landing (hero + \"Happening now/next\" across schedules), bottom-nav + drawer, multi-floorplan maps, named multi-schedules with per-session detail pages, announcements, location-scoped feedback, and \"you are here\" QR cards.
\n* Device-first identity: feedback with no sign-in; optional email magic-link verification creates/links an attendee.
\n* Per-event OKLCH theme engine: accent + neutral + style dials derive contrast-guarded tokens; 10 presets; light/dark/dark-luxe; live preview in wp-admin. Branded boot splash, hero, and motion.
\n* Offline support: after one online load the app works in a venue dead zone (cached data + floorplans); QR codes resolve client-side; offline indicator.
\n* Self-hosted updates via the foh-updates channel.
0.1.0
\n* Foundation release: plugin activation, DB schema (11 tables), admin page shell with stub tabs, self-hosted updater, release workflow.