EYWorks Enquiry Form
WordPress plugin: custom enquiry form for The Working Mums Club with EYWorks API integration, GTM tracking, and admin dashboard.
by Two Ten Studio · github.com/twotenstudio/eyworks-enquiry-form · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/twotenstudio/eyworks-enquiry-form/archive/refs/heads/main.zipReadme
EYWorks Enquiry Form
A WordPress plugin that replaces the default EYWorks iframe enquiry form with a native, customisable form — complete with EYWorks API integration, Google Tag Manager tracking, local storage, email notifications, and an admin dashboard.
Built for nurseries, pre-schools, and childcare providers using EYWorks.
Why?
The default EYWorks iframe form can't be tracked by Google Tag Manager (cross-origin restrictions), can't be styled to match your site, and doesn't give you a local copy of enquiries. This plugin solves all three.
Features
- EYWorks API integration — submits enquiries directly via the EYWorks
/api/enquiryPostendpoint - Multi-nursery support — point each form at any nursery (branch) on your EYWorks account via the
nurseryshortcode attribute - Local storage — every enquiry is saved to your WordPress database, even if EYWorks is down
- Admin dashboard — searchable, paginated list of all enquiries with expandable detail view
- CSV export — one-click export of all enquiries
- Email notifications — sends a plain-text email on every submission
- GTM dataLayer events — fires
tour_booking_submitted,tour_booking_attempted, andtour_booking_error - UTM passthrough — captures UTM parameters from the page URL and sends them to EYWorks
- Settings screen — configure your EYWorks connection from the WordPress admin (no code needed)
- Resilient — if the EYWorks API fails, the enquiry is still saved locally and the user sees a success message
Installation
- Download or clone this repository into
/wp-content/plugins/eyworks-enquiry-form/ - Activate the plugin in WordPress → Plugins
- Go to Tour Enquiries → Settings in the WordPress admin
- Enter your EYWorks subdomain and API token
- Add the shortcode
[eyworks_enquiry_form]to any page or post
Setup
1. Find your EYWorks credentials
Log into your EYWorks dashboard and go to Settings → Access Token → Enquiries. You'll need:
- Subdomain — the part before
.eylog.co.uk(e.g. if your URL ismynursery.eylog.co.uk, your subdomain ismynursery) - API Token — the JWT token shown on the Access Token page
2. Configure the plugin
Go to Tour Enquiries → Settings in your WordPress admin and enter both values. The plugin will test the connection and show a green "Connected" status with your nursery name.
3. Add the form
Add this shortcode to any page or post:
[eyworks_enquiry_form]
The form automatically loads source options (e.g. "Google", "Friend/Family") from your EYWorks account.
Works with Elementor, Gutenberg, WPBakery, or any page builder that supports shortcodes.
Multiple nurseries on one EYWorks account
If your EYWorks account has more than one nursery (branch) — they all share the same *.eylog.co.uk subdomain and Enquiries token — each form can be pointed at a specific nursery with the nursery shortcode attribute:
[eyworks_enquiry_form nursery="2"]
The attribute accepts the nursery's numeric ID, the encoded ID from the API, or the nursery's name exactly as it appears in EYWorks:
[eyworks_enquiry_form nursery="Oak House Nursery"]
- Without the attribute, the form submits to the first nursery on the account (same behaviour as previous versions).
- Tour Enquiries → Settings lists every nursery on the connected account with a ready-made shortcode for each.
- Running a branch's form on a separate WordPress site? Install the plugin there, enter the same subdomain and API token, and use the
nurseryattribute to target the right branch. - Each enquiry is logged with its nursery name in the dashboard, CSV export, and notification emails (subject and body).
- If the attribute doesn't match any nursery on the account, the form falls back to the account default and shows a warning that only logged-in administrators can see.
Note: only one enquiry form per page is supported.
Google Tag Manager
The form fires three dataLayer events:
| Event | When | Extra data |
|---|---|---|
tour_booking_attempted |
User clicks Submit | source |
tour_booking_submitted |
Enquiry saved successfully | source, postcode, utm_source, utm_medium, utm_campaign |
tour_booking_error |
Submission failed | error_message |
GTM setup for GA4
- Create a trigger: Custom Event → Event name:
tour_booking_submitted - Create a GA4 Event tag: Event name:
tour_booking_submitted, attach the trigger above - Optionally add event parameters:
source,postcode, etc. using Data Layer Variables
Google Ads conversion tracking
- Create a Conversion Linker tag (fires on all pages)
- Create a Google Ads Conversion Tracking tag triggered by
tour_booking_submitted
Admin Dashboard
Go to Tour Enquiries in the WordPress admin sidebar to see all submissions. Each row shows:
- Child name, DOB, gender
- Parent name, email, phone
- Source, preferred start date, postcode
- EYWorks sync status (✓ Sent / ✗ Failed)
- UTM parameters (if present)
- Submission timestamp
Click View on any row to see the full detail. Use Export CSV to download all enquiries.
Email Notifications
Every submission sends a plain-text email to the configured notification address (defaults to the WordPress admin email). Change this in Tour Enquiries → Settings.
Advanced: wp-config.php overrides
For production environments, you can define settings as constants in wp-config.php. These take priority over the Settings page:
define('EYWORKS_API_TOKEN', 'your-token-here');
define('EYWORKS_API_BASE', 'https://yournursery.eylog.co.uk/eyMan/index.php/api');
define('EYWORKS_NOTIFY_EMAIL', 'team@yournursery.co.uk');
When constants are defined, the corresponding fields on the Settings page are disabled and show a notice.
File structure
eyworks-enquiry-form/
├── eyworks-enquiry-form.php # Main plugin file (PHP)
├── eyworks-form.css # Frontend form styles
├── eyworks-form.js # Frontend JS (AJAX, validation, GTM)
├── .gitignore
└── README.md
Requirements
- WordPress 5.0+
- PHP 7.4+
- An active EYWorks account with API access enabled
Changelog
3.0.0
- Multi-nursery support: new
nurseryshortcode attribute targets any nursery on the account (by numeric ID, encoded ID, or name) - Settings page lists all nurseries on the connected account with a ready-made shortcode for each
- Enquiries are logged with their nursery name (dashboard detail view, CSV export, email subject and body)
- Admin-only warning when a shortcode's
nurseryattribute doesn't match the account
2.2.0
- Added Settings screen for configurable EYWorks connection
- Plugin is now generic — any EYWorks nursery can use it
- Connection status indicator on Settings page
- Settings link on Plugins page
- Admin-only error message when form is not yet configured
- wp-config.php constants override Settings page values
2.1.0
- Admin dashboard with expandable detail view
- CSV export (clean output, no HTML)
- Preferred start date blocks past dates
- Auto-creates database table without deactivation/reactivation
- Failsafe table check on every submission
2.0.0
- Switched to correct EYWorks API (
/api/enquiryPost) - Base64-encoded IDs for nursery/source
- UTM parameter passthrough
- Local database storage
- Email notifications
1.0.0
- Initial release
Credits
Built by Two Ten Studio.
License
GPL-2.0+
Read the full README on GitHub →
Releases
| Tag | Published |
|---|---|
| v3.0.0 | Jul 29, 2026 |
| v2.12.0 | Apr 15, 2026 |
| v2.11.0 | Apr 10, 2026 |
| v2.10.0 | Apr 6, 2026 |
| v2.8.0 | Apr 6, 2026 |
| v2.7.0 | Apr 6, 2026 |
| v2.6.0 | Apr 6, 2026 |
| v2.5.0 | Apr 6, 2026 |
| v2.4.0 | Apr 6, 2026 |
| v1.0.0 | Apr 4, 2026 |
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.