Embedding classes on your website
Put your JoinCPR class schedule, course list or a single class on your own website with iframe widgets, filtered by course, in a light or dark theme.
Updated · JoinCPR help center
Settings → Embed gives you copy-and-paste snippets to show your schedule on your own website. Admins and staff can view; saving the options is admin-only.
The three widgets
| Widget | Shows | Snippet source |
|---|---|---|
| Class Schedule | Upcoming public classes with Register Now buttons, 12 at a time with Load More Classes | your-portal/embed/classes |
| Course List | All active courses with View Classes buttons | your-portal/embed/courses |
| Single Class Detail | One class's details and Register button | your-portal/embed/classes/{class-id} |
Each snippet is an <iframe> with a height you can adjust to fit your page. Paste it into any page builder that accepts HTML.
Options in the URL
- Only one course:
…/embed/classes?course=your-course-slug. The slug is the last part of the course's link on the Courses page. An unknown slug shows all classes. - Dark theme: add
?theme=dark(or&theme=darkafter another option). Embeds render in light mode by default and never follow the visitor's device setting.
The class ID for the single-class widget is the number in the class's address in your dashboard. A class that is unpublished, cancelled, private or past shows "not found" inside the frame.
Embed Options
- Show 'Powered by JoinCPR': a small attribution line under the widget. On by default; you may turn it off.
- Show spots remaining: the same setting as on the Student Portal page. In embeds, "N spots left" appears only when five or fewer remain; Full always shows. With the waitlist on, a full class shows a Join Waitlist link that opens the portal's waitlist form in a new tab.
How registration works from an embed
Buttons open your full student portal in a new tab. Checkout never happens inside the iframe. The widget uses your brand colour and favicon but does not show your logo. The class schedule widget ends with a "Training for your team? Request a private class" link to your portal's group training request page.
Things to know
- Snippets use your portal address: the custom domain if connected, otherwise your subdomain. If you change either, re-copy the snippets onto your website. See Domains.
- Embed pages are marked so search engines do not index them.
- If your plan lapses, the widget shows "Online registration is temporarily closed" inside the frame. See Billing.
- The frame does not resize itself; a long list scrolls inside it unless you increase
height.