
The Kouib Blocks for Tutor LMS package turns a static course listing into a fast, interactive experience inside the Gutenberg block editor — no complex setup. Add a block and display it anywhere.
The five blocks:
- Courses Filter — a grid of courses with category buttons, custom ordering by student count, and a cache per settings combination. Works on the frontend and in the editor (ServerSideRender).
- Courses Carousel — a responsive slider with side arrows, columns adjustable from the editor, and ordering by newest, most enrolled, or random.
- Course Category Boxes — a grid of categories with a course counter and a link per category, plus a custom icon (PNG/SVG) per category uploaded straight from the media library.
- Quick Search — an instant (AJAX) search field with live results and no page reload, featuring:
- Full Arabic normalization: (أ/إ/آ/ٱ ا), (ة ه), (ى ي) and diacritics removal, so searching “الحساب” also finds “المحاسبة”.
- Smart relevance ranking: title match > starts with the phrase > contains it.
- A “match exact phrase” option and a two-letter minimum for words.
- Form colors, size and shape adjustable from the editor, with results floating over the page when needed.
- Platform Stats — prominent counters (icon + number + label) for students, instructors, courses and lessons, with a responsive grid (3 breakpoints) and a full panel to show/hide each statistic and its style.
Guaranteed performance:
– Transient cache for every piece (ready HTML or stat numbers) with an active-keys registry.
– Automatic invalidation on saving/deleting a course, on new student enrollments, or on rating updates.
– Light queries: no row-by-row enrollment counting; instructor stats via a single query.
– Each block’s assets load only when the block is present — no extra CSS/JS on pages that don’t need it.
Translation & Arabic:
– All strings use __() with the kouib-blocks-for-tutor-lms text domain and are ready for .po/.mo.
– Full RTL support and numbers formatted with number_format_i18n.
– Compatible with Kadence and other themes that respect theme.json.
Source Code
The source code for this plugin is publicly available at:
https://github.com/kouiderbounama/kouib-blocks-for-tutor-lms
The source code for the compiled block editor scripts is also included in the src/ directory of this plugin. Each block’s edit.jsx file is the human-readable source that generates the corresponding build/*/index.js file.
To regenerate the compiled files:
- Install Node.js 18+ and run
npm installin the plugin root. - Run
npx wp-scripts buildto compile thesrc/directory intobuild/. - Run
node build-i18n.jsto regenerate translation files.
The vanilla JavaScript files in assets/js/ (carousel.js, search.js, view.js) are hand-written source files and are not generated by build tools.
Screenshots

Platform stats: icon + number + label.

Courses filter with category buttons.

Courses carousel.

Category boxes with counter and custom icons.

Quick search with instant results.