Skip to content

feat(the-events-calendar): add Pro event, venue, organizer and series actions - #241

Open
RishadAlam wants to merge 7 commits into
mainfrom
feat/the-events-calendar-expansion
Open

RishadAlam wants to merge 7 commits into
mainfrom
feat/the-events-calendar-expansion

Conversation

@RishadAlam

@RishadAlam RishadAlam commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Description

Adds the setup screens and Free hooks for 15 new Pro actions in The Events Calendar integration. Also adds the event and series filters for the 17 new Pro triggers. The action logic lives in the companion Pro PR.

Motivation & Context

The Events Calendar action only had Register New Attendee, and its setup required Event Tickets even for tasks that do not need it.

Related Links: (if applicable)

Type of Change

  • 🐛 Bug fix
  • ✨ New feature
  • 💥 Breaking change
  • 📚 Documentation update
  • ⚡ Improvement
  • 🔄 Code refactor

Key Changes

Backend (backend/Actions/TheEventsCalendar/)

  • Added a switch in RecordApiHelper that fires bit_integrations_the_events_calendar_<task> with the mapped fields and the settings.
    • Settings are the required selects (eventStatus, frequency, recurrenceEnd, seriesId) plus the Utilities with selected_ removed.
    • Every run writes a log entry.
  • Unchanged Register New Attendee runtime: same Event Tickets check, same event list, same errors and log format as main. A runtime A/B against main gives identical output.
  • Added list routes for events, venues, organizers, categories, series and time zones.
  • Added a separate The Events Calendar check for the new list routes. Only the new event list (refresh_the_events_calendar_events) shows past events.

Frontend (frontend/src/components/AllIntegrations/TheEventsCalendar/)

  • Added the 15 tasks. Each is Pro-gated, has its own field map (required fields first), required selects and Utilities.
    • Utilities can be a select, a multi-select or a plain checkbox.
    • Update tasks get paired boxes (for example Mark as Featured / Remove Featured), so a flag can be set either way.
  • Added list loading on task change and when the edit page opens, with refresh buttons and a request-counting spinner.
  • Fixed flow size: the fetched lists are removed before save. A Create Event flow drops from about 29 KB to 2 KB.
  • Updated the setup check: only The Events Calendar must be active. The note says which tasks also need Event Tickets or The Events Calendar Pro.

Trigger setup

  • Updated the hard-coded events_calendar-1..4 checks in EditFormInteg.jsx, TriggerStateHelper.js and EventsCalendarHelper.jsx to shared task lists. The event filter now also shows for tasks 7–13.
  • Added a series filter for Event Added to Series.

Testing

  • WP-CLI harness: 79/79 checks pass through TheEventsCalendarController::execute and Flow::execute.
  • Browser (Chrome DevTools):
    • Built each of the 15 action flows in the builder on a CF7 form.
    • Submitted the form as a guest and checked each result in the flow log and in TEC.
    • Edited and re-saved flows.
  • Lint: prettier, eslint, php-cs-fixer, PHPCompatibilityWP 7.4+ and Plugin Check are clean on the changed files.

Existing workflows

  • A runtime A/B on main vs this branch compared Register New Attendee (5 run cases, with and without Event Tickets, including log rows), the event list route and the attendee trigger setup data. The output is byte-identical.
  • Outside The Events Calendar files, only the EventsCalendar branches of EditFormInteg.jsx and TriggerStateHelper.js changed.

Checklist

  • Code follows project style guidelines
  • Self-review completed
  • Tests added/updated
  • Documentation updated if needed
  • README updated if needed

Changelog

  • New Actions: The Events Calendar: Create, Update, Delete, Duplicate and Create Recurring Event, Update Event Status, Create/Update/Delete Venue, Create/Update/Delete Organizer, Create Event Category, Create Series and Add Event to Series (Pro).
  • Improvement: The Events Calendar: The setup now needs Event Tickets only for Register New Attendee.

🤖 Generated with Claude Code

… and series actions

Register New Attendee keeps its flow. The other tasks pass the mapped
fields and the Utilities to Pro, and every run writes a log entry.

The event list no longer needs Event Tickets and now shows past events.
Add list routes for events, venues, organizers, categories, series and
time zones.
Add 15 Pro tasks for events, venues, organizers, event categories and
series. Each task gets its field map, required selects and Utilities.
Update tasks get paired boxes so a flag can be turned on or off.

Only The Events Calendar must be active now. The note says which tasks
also need Event Tickets or The Events Calendar Pro.
…triggers

Move the trigger task checks to shared lists, so the event filter also
shows for the updated, date, status, trash, delete and duplicate
triggers. Event Added to Series gets a series filter.
The venue, organizer, category, series, event and time zone lists were
saved into every flow. The setup screen fetches them again when it
opens, so they are now removed before a save. A Create Event flow drops
from about 29 KB to 2 KB.

The list spinner now counts open requests, so one finished refresh does
not hide it while another still runs.
Copilot AI balanced review requested due to automatic review settings October 20, 2026 10:23

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

Copy link
Copy Markdown

✅ WordPress Plugin Check Report

✅ Status: Passed

📊 Report

All checks passed! No errors or warnings found.


🤖 Generated by WordPress Plugin Check Action • Learn more about Plugin Check

Register New Attendee checks for Event Tickets, reads the same event
list and returns the same errors as before. Only the new tasks use the
The Events Calendar check, the new list routes and past events.

The trigger edit page sends its task, so the attendee triggers keep
their old event list.
Copilot AI balanced review requested due to automatic review settings October 21, 2026 04:53

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI balanced review requested due to automatic review settings November 3, 2026 10:16

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

Create Event, Update Event and Create Recurring Event list The Events Calendar Pro
additional fields in a Custom Fields group of the field map. A new
refresh_the_events_calendar_custom_fields route sends the fields, and it sends an
empty list when Pro is not active.
Copilot AI balanced review requested due to automatic review settings November 3, 2026 11:04

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants