Website booking widgets
Blocks the public website embeds to show courses, dates and checkout. They read from the hub, so a seat sold in the back office, a price change or a cancelled batch shows on the website without anyone editing a page.
Pages that carry these widgets
Widgets are placed on website pages; the pages are managed in Website & CMS| Page | Widget on it | Page state | Version | Last published | Owner |
|---|
Catalogue widget
LiveA searchable grid of published courses with filters for academy, provider, level and delivery mode. Cards show the next batch date and the lowest current price.
<div data-malyomar-widget="catalogue"
data-academy="piping"
data-per-page="12"
data-lang="en"></div>
<script async src="https://learning.malyomar.com/hub/widgets.js"></script>
Used on the public site
Upcoming sessions
Upcoming dates widget
LiveA list of open batches in date order. Status follows the hub: "Last seats" below 20% left, "Join waitlist" when full, and private batches are never listed.
<div data-malyomar-widget="upcoming-dates"
data-days="90"
data-mode="all"
data-full="waitlist"></div>
<script async src="https://learning.malyomar.com/hub/widgets.js"></script>
Used on the public site
"Book now" block
LiveSits beside the course description. The visitor picks a date, sets the number of seats and continues to the registration form assigned to that batch. A course without an open batch shows "Register interest" and creates a lead.
<div data-malyomar-widget="book-now"
data-course="PD643"
data-team-cta="true"></div>
<script async src="https://learning.malyomar.com/hub/widgets.js"></script>
Used on the public site
Checkout widget
LiveRegistration form, extras, coupon and payment in one flow. The seat is held on the batch for 72 hours from the first step, the same hold a sales-placed order gets.
<div data-malyomar-widget="checkout"
data-return-url="/thank-you"
data-methods="card,fawry,transfer"></div>
<script async src="https://learning.malyomar.com/hub/widgets.js"></script>
What checkout writes to the hub
Used on the public site
Placements
Last 30 days| Widget | Page | Install method | Views | Bookings started | Orders | Last sync | Status |
|---|
Install options
Decision open| A. New public site, built-in CMS | B. WordPress stays, plugin on the current site | |
|---|---|---|
| How widgets are added | Native components, no embed script | Shortcodes or blocks in the WordPress editor |
| Page speed | Rendered with the page | Widget loads after the page, one extra script |
| Search engines | Dates and prices are in the page itself | Dates and prices are added by script; structured data needs the plugin |
| Tutor LMS | Replaced by the learner portal | Stays for existing learners until migration finishes |
| Effort | Larger, part of the full build | Smaller, sooner |
| Who writes and publishes pages | Platform page editor, after approval (approach A) | WordPress editor; the platform hands the work off (approach B) |
Live sync
Connected- Seat sold on B-2611. Widgets show 3 seats left.
- B-2613 reached 16 of 16. "Book now" changed to "Join waitlist".
- Early-booking price for B-2617 published from Coupons & pricing.
- Seat hold on B-2614 released after 72 hours without payment.
- B-2616 start time changed. Dates list and course page updated.