Plugin: dezeen-campaign-monitor
Overview
| Property | Value |
|---|---|
| Plugin Name | Dezeen Campaign Monitor |
| Version | 1.0.0 |
| Author | EDX |
| Location | _project/_web/wp-content/plugins/dezeen-campaign-monitor/ |
| Purpose | Campaign Monitor newsletter signup forms and integration |
Architecture
dezeen-campaign-monitor/
├── dezeen-campaign-monitor.php
└── src/
├── classes/
│ ├── core.php # Main loader, shortcodes
│ ├── admin.php # Settings page
│ ├── frontend.php # Frontend rendering
│ ├── class-shortcode.php # Shortcode logic
│ ├── class-campaign-monitor.php # CM API wrapper
│ └── class-rest-api.php # REST endpoints
├── views/
│ ├── form.php # Signup form view
│ ├── event-invite-form.php # Event invite form
│ ├── unsubscribe-form.php # Unsubscribe form
│ └── settings.php # Admin settings view
└── assets/
├── js/campaign-monitor.js # Frontend JS
└── sass/campaign-monitor.scss # StylesREST API Endpoints
| Method | Endpoint | Auth | Purpose |
|---|---|---|---|
| POST | dezeen-campaign-monitor/v1/subscribe | Public | Subscribe email |
| POST | dezeen-campaign-monitor/v1/unsubscribe | Public | Unsubscribe email |
| POST | dezeen-campaign-monitor/v1/check-email | Public | Check subscription status |
| POST | dezeen-campaign-monitor/v1/event-invite | Public | Event invite signup |
| POST | dezeen-campaign-monitor/v1/test-connection | Admin | Test CM API connection |
| GET | dezeen-campaign-monitor/v1/get-custom-fields | Admin | Get CM list custom fields |
| GET | dezeen-campaign-monitor/v1/test | Public | Health check |
| GET | dezeen-campaign-monitor/v1/nonce | Public | Get WP nonce |
Shortcodes
| Shortcode | Purpose |
|---|---|
[campaign_monitor_form] | Newsletter signup form |
[campaign_monitor_status] | Subscription status check |
[campaign_monitor_unsubscribe] | Unsubscribe form |
[campaign_monitor_event_invite] | Event invite form |
Configuration
Required wp-config.php constants:
php
define('CAMPAIGN_MONITOR_LIST', 'd24aa47810d563872be2928382fe1bf4');
define('CAMPAIGN_MONITOR_API_KEY', '...');
define('CAMPAIGN_MONITOR_CLIENT_ID', '...');Admin Pages
- Settings → Dezeen Campaign Monitor — API configuration and form settings
Asset Build
Plugin assets are compiled via the main webpack.mix.js:
- JS:
src/assets/js/campaign-monitor.js→themes/2016dezeen/assets/js/plugins/dezeen-campaign-monitor.js - SCSS:
src/assets/sass/campaign-monitor.scss→themes/2016dezeen/assets/css/plugins/dezeen-campaign-monitor.css