If your website runs on WordPress, the DojoMesh plugin puts your class schedule, a free trial and sign-up form with your agreements, your membership plans, your events and a contact form on it. Everything a visitor sends lands in DojoMesh, and everything you change in DojoMesh shows on the site within minutes.
What it does
- Class schedule: your weekly timetable, with a "Try this class free" link on each class.
- Join form: visitors choose Book a free trial class or Sign up, for themselves or their child, and sign your agreements in the same form.
- Membership plans: your plans with prices; Join opens your secure DojoMesh checkout.
- Events: upcoming seminars and events with registration. Paid events are paid on your DojoMesh event page.
- Contact form: the message is saved on the person in DojoMesh and emailed to you.
- Member login: a button to your member portal.
- Several locations: one website can serve several DojoMesh academies; visitors pick theirs once.
Install the plugin
Download dojomesh.zip. In WordPress open Plugins Add New Plugin Upload Plugin, choose the zip, then Install Now and Activate.
It needs WordPress 6.4 or newer, PHP 7.4 or newer, and a site on https.
Connect your academy
- In DojoMesh open Settings API Integration and click Generate New API Key. Copy the key (it starts with dm_).
- In WordPress open Settings DojoMesh.
- Fill in the row: the name visitors see (for example Hamilton), your DojoMesh address (the part before .dojomesh.com), and the key. Click Save settings.
- Click Test connection. It shows your academy name, timezone, whether card payments are ready, whether your email is connected, and how many classes, website plans, agreements and events it found.
If something else already uses your API key (another website form, a Square Terminal integration), paste the new key there too.
Add it to your pages
In the block editor, click + and search for DojoMesh: every feature is a block, with its options in the sidebar. If you use the classic editor or a page builder, use the shortcodes instead:
| Shortcode | What it shows |
|---|---|
| [dojomesh_schedule] | Weekly timetable. book_link="no" hides the free-class links, show_description="yes" adds class descriptions. |
| [dojomesh_join] | Free trial or sign up. mode="trial" or mode="signup" skips the choice. |
| [dojomesh_plans] | Membership plans. plans="80,83" shows only those, button_text="Start now" changes the button. |
| [dojomesh_events] | Upcoming events with registration. |
| [dojomesh_contact] | Contact form. |
| [dojomesh_member_login] | Button to the member portal. |
| [dojomesh_checkout_result] | The "payment received" message. Put it on its own page. |
| [dojomesh_location_picker] | Location buttons (several locations only). |
Elementor, Divi or another page builder? Add a Shortcode widget (in Elementor, search the widget panel for "shortcode") and paste the shortcode into it. To point your existing "Free class" buttons at the form, give the section holding [dojomesh_join] an ID (Elementor: Advanced CSS ID, for example trial) and link the buttons to #trial.
Then, back in Settings DojoMesh, choose your Join page (so the schedule can link to it) and your After-payment page (the page with [dojomesh_checkout_result]).
Matching your website
The plugin uses your theme's fonts and text colours, so it looks like part of your site, including on dark page sections. Under Settings DojoMesh Display you can match the rest of your brand without any code:
- Button colour: your brand colour, used for buttons and highlights.
- Button shape: square, rounded or pill, to match the buttons on the rest of your site.
- Heading & button font: the name of the font your site uses for headings, for example Montserrat. Tick Load it from Google Fonts only if your site does not load it already.
- Start with "My child" selected: for kids programs, where most bookings are made by parents.
Styling has two settings. Standard (recommended) draws the cards, form fields and buttons in your colour and shape. Minimal keeps only the layout and leaves everything else to your theme or your own CSS. Choose it only if a web designer is styling the forms, since some themes colour form labels for light backgrounds only.
Everything sits inside .dojomesh. The settings set three CSS variables you can also set yourself: --dm-accent, --dm-btn-radius and --dm-heading-font. Buttons also carry WordPress's button and wp-element-button classes.
Several locations on one site
Add one row per academy under Locations, each with its own DojoMesh address and key. Then:
- Put [dojomesh_location_picker] at the top of your pages (add align="left" if your page is left-aligned). The visitor's choice is remembered on every page and every visit, and each block shows that location's schedule, plans and form, with a small Change link to switch.
- Or fix a block to one location with location="your-academy" (or the Location setting on the block), for example one events list per location page.
- Links can choose for the visitor: add ?location=your-academy to any page address.
Each location's bookings, sign-ups and payments go to that academy's own DojoMesh account, and its emails come from that academy's own mailbox.
The join form
Visitors fill in their details once. A parent can choose My child and enter the child's name and date of birth; the child becomes the lead, with the parent's name on the profile.
- Book a free trial class: they choose a class from your schedule and one of its next four dates (or "I'm flexible"). You see it under Members Trial Bookings, and the usual trial confirmation and reminder emails go out.
- Sign up: also asks for address, emergency contact and medical notes. They then choose That's all for now (they stay a lead), Also book a free trial class, or Choose a membership and pay now.
Agreements are the ones you show on signup in DojoMesh. Under-age and adults-only agreements and the parent/guardian statement follow the date of birth, exactly as on your other DojoMesh forms. Signatures appear on the person's profile, marked as signed online.
Someone who signs up twice with the same name and email is matched to their existing record; blank details are filled in, nothing is overwritten.
Payments
Card details never touch your WordPress site. Join on a plan, and pay now on the sign-up form, open your secure DojoMesh checkout on your DojoMesh address, with your logo and colours. Sign-ups that pay come back to your after-payment page, which shows what was paid and the reference.
Events
Events you publish in DojoMesh with registration switched on appear with their date, price and options.
- Free and pay at the event: visitors register right on your site.
- Pay online: Register & pay opens your DojoMesh event page, where they pay by card through Stripe or Square, then return to your site.
Registrations appear on the event in DojoMesh, and paid ones in your event income, the same as registrations from your DojoMesh landing page.
Who gets emailed
| When | The visitor gets | You get |
|---|---|---|
| Free trial booked | Trial confirmation (and the day-before reminder) | New free class booking |
| Sign up | Nothing yet | New website sign-up (setting, on by default) |
| Payment | Receipt | Payment alert |
| Event registration | Registration confirmation | New registration |
| Contact form | Nothing | The message (reply to answer) |
Emails to visitors go out from your academy's own mailbox, so connect it first: see Connecting Gmail. Test connection warns you if it is not connected.
Updates
The plugin updates like any other: when a new version is out, WordPress shows Update now on the Plugins screen (or updates it for you if you switched on auto-updates for it). Your settings are kept.
Security and spam
- Your API key is stored encrypted in WordPress and is never sent to visitors' browsers.
- Forms are protected by a hidden spam trap, a timing check, single-use form tokens and a per-visitor limit, plus DojoMesh's own lead screening. Submissions that look like spam are kept out of your notifications.
- Pages can be cached by caching plugins: the forms fetch what they need when the page loads.
- If you think your key has leaked, generate a new one in DojoMesh and paste it into WordPress. The old one stops working immediately.
Troubleshooting
- Test connection says "This action requires a generated API key"
- You pasted the old-style key. Click Generate New API Key in DojoMesh and use that one.
- I changed my schedule or plans and the site has not caught up
- The site keeps a copy for five minutes. Click Clear cache under Settings DojoMesh.
- A plan is missing
- Only plans with Show on website ticked and a price are listed.
- "Pay now" is not offered on the sign-up form
- Choose an After-payment page in the plugin settings, and check that card payments or e-transfer are set up in DojoMesh.
- Anything else
- The settings page lists the last API errors. Send us a screenshot of it.