Reviews Plugin — SynaptikCMS
Standalone customer-reviews module: admin-managed review list (author, star rating, text, optional avatar), displayed on the front end as a carousel or grid via shortcode. No external dependency, no API key, no database — everything is a flat JSON file, same as CMS core content.
Installing
- Upload the plugin. From Admin → Tools → Extensions, use the Install a plugin upload form and select the plugin's
.zipfile. The ZIP must contain aplugin.jsonmanifest at its root with"synaptik_plugin": true.- The plugin is extracted to
/plugins/reviews/but not activated automatically — this is intentional, mirroring how theme uploads work. - If a folder named
plugins/reviews/already exists, the upload is refused. Delete the existing plugin first if you're reinstalling.
- The plugin is extracted to
- Activate it. Still on the Extensions page, click Activate on the Reviews card. This adds a Reviews entry to the main admin sidebar.
- Add some reviews. Open the Reviews sidebar entry and use the "Add a review" form: customer name, star rating, review text, an optional date and avatar image, and a status (Published / Draft).
- Display them. In the content editor, insert one of the shortcodes below anywhere in an article, page, or project. The widget renders automatically at that spot on the public-facing page.
Shortcodes
[reviews_carousel]
[reviews_grid]
[reviews_carousel limit="6" min_rating="4"]
[reviews_grid limit="3"]
| Attribute | Values | Default | Description |
|---|---|---|---|
limit | integer | plugin setting (default 10) | Max number of reviews shown |
min_rating | 1–5 | 1 | Only show reviews at or above this star rating |
Only published reviews are ever rendered — a review saved with status "Draft" is visible in the admin list but never appears on the front end, so a testimonial can be prepared and reviewed before going live.
If no published review matches the given min_rating, the shortcode renders nothing (no empty widget shell) rather than an empty carousel.
Using it day to day
Admin side — Reviews sidebar entry:
- Add / edit — a single form handles both; author, rating (1–5), review text, date, optional avatar upload, and status.
- Reorder — drag rows in the review list to change their display order; the new order is saved automatically and used by both shortcodes.
- Delete — removes the review and its avatar file, if any.
- Settings — set the default layout (carousel or grid) and default number of reviews shown, used whenever a shortcode omits
limit/style.
Avatar uploads are optional. If skipped, the widget shows a colored initial-letter placeholder instead. Accepted formats: JPEG, PNG, WebP, GIF — max 2 MB, validated by actual file content (not just the file extension) before being stored.
Maintenance notes
- Only published reviews count toward the average rating shown in the admin stats panel
rv_get_average_rating()) — draft reviews are excluded, same as they're excluded from the front-end display. - Avatar cleanup is automatic. Deleting a review, or replacing its avatar with a new upload, removes the old image file from
assets/uploads/— the directory does not accumulate orphaned files over normal use. - Reordering is a single JSON write. Drag-and-drop in the admin list posts the full ordered ID list once per drag (
reorder_reviewsinadmin/actions.php), not one request per row moved. - Adding a language: copy
lang/en.json→lang/{locale}.jsonandlang/admin/en.json→lang/admin/{locale}.json, translate the values. The plugin automatically follows the core'sactive_language(front) andadmin_language(admin) settings — no extra configuration needed. - Distribution. This plugin is excluded from the core CMS's public release export (
export-release.shexcludes/plugins/andplugins.json) — it ships and updates independently of core releases.
