Client system / course operations

AWR Course Manager

Keep scheduling, forms and marketing automation consistent across the whole course flow.

01 / Purpose

Purpose and scope.

A WordPress application for course schedules, forms, local submissions, permissions, archives, frontend popups and ActiveCampaign tagging.

Centralise course schedules and operational configuration inside WordPress.

Connect participant forms with local records and ActiveCampaign automation.

Expose only the next safe public schedule item to frontend experiences.

Package and promote changes as versioned, inspectable WordPress artifacts.

02 / Interactive demo

AWR Course Manager: scheduling.

Manage course text, repeatable dates and source timezones, then save and follow the visitor’s registration flow. The archive and submissions screens show the result.

About this demoA source-based browser reconstruction with fictional data, embedded in this portfolio. The WordPress plugin is not running here. Settings apply when saved; all changes reset when you reload.

AWR Course ManagerScheduling, course popup and signup · fictional courses
Two separate screens in the real plugin
◉ WordPress / Sample siteDemo administrator

AWR Course Manager

Manage form text, popup content, schedules and submission records.

Shortcodes[awr_course_popup][awr_intro_webinar_form][awr_masterclass_form]

Sample clock: 1 June 2027, 00:00 UTC. Archive status uses the latest slot on each date.

Try it: add a third time, save changes, then open the website preview.

Intro Webinar dates

2 dates

Each date can offer three times, with an independent source timezone for every slot.

SelectDate labelWebinar dateTime 1Time 2 (optional)Time 3 (optional)Action
All sample settings saved

Based on AWR 0.5.11’s admin, schedule, popup and form sources. The sample clock is fixed; timezone conversion is real. WordPress saving and ActiveCampaign sync are simulated. Integration credentials, payments and permission administration are omitted.

03 / Decisions

Engineering decisions.

Browser-aware time

A course scheduled in one timezone should appear correctly for an international visitor without rewriting the source record.

External success before local commit

Local state must not claim a participant is synchronized when the marketing platform rejected the operation.

Tiny public contract

The schedule endpoint returns one whitelisted event, not plugin options or participant data.

Immutable packages

Single-root, linted, versioned archives make deployment and rollback inspectable.

04 / Architecture

How it works.

01

Schedule

Store source-timezone course dates and convert them for each browser at the presentation boundary.

02

Submit

Validate participant input and synchronize the required external marketing state.

03

Commit

Persist the local submission only after the external synchronization succeeds.

04

Publish safely

A whitelisted read-only endpoint exposes only the next event needed by public frontend banners.

05 / Technology

The working parts.

PHPWordPressJavaScriptCSSActiveCampaign APIWordPress REST APITimezone conversionVersioned packages

06 / Project status & roadmap

Current state and next steps.

Current
  • Version 0.5.11 was deployed to production in August 2026, matching its release package.
  • The deployment was verified and a rollback snapshot was kept.
  • Core schedule, form, archive and integration paths exist.
  • The public next-event endpoint was verified as part of that deployment.
Planned
  • Extend schedule integration beyond the deployed flexible-payment page where approved.
  • Continue improving operational reporting and administrator clarity.