EffortLess Simple Reviews Editor
EffortLess Simple Reviews Editor lets visitors submit reviews (pending admin approval) and displays published reviews in a responsive card grid with infinite scroll.
Features:
- Front-end review submission form with star rating, name, title, and review text fields
- Admin approval workflow — all submissions are set to « Pending »
- Responsive card grid with configurable columns
- Infinite scroll (IntersectionObserver) for seamless loading
- Spam protection: honeypot field + rate limiting (1 submission per 60 s)
- Accessible star rating with keyboard navigation
- One-time-use review links — send unique links to clients
- Programmatic link generation via
elsre_create_review_link() - No external dependencies — pure CSS stars, vanilla JavaScript
- i18n ready —
.pottranslation template included
Shortcodes
[elsre_reviews] — Display Reviews Grid
Place this shortcode on any page or post to display published reviews.
Attributes:
per_page(default:6) — Reviews per load batchcolumns(default:3) — Grid columns on desktop (1–6)ids(default: empty) — Comma-separated review IDs; disables paginationorder(default:desc) — Sort order:descfor newest first,ascfor oldest firststar_size(default:18px) — Star icon size (any CSS unit)text_size(default:15px) — Review text font sizename_size(default:14px) — Reviewer name font size
Examples:
[elsre_reviews]
[elsre_reviews per_page="9" columns="3"]
[elsre_reviews ids="12,45,78" columns="2"]
[elsre_reviews star_size="28px" text_size="18px" name_size="16px"]
[elsre_form] — Review Submission Form
Place this shortcode on any page or post to display the submission form.
Attributes:
require_token(default:no) — Set toyesto require a one-time-use link tokenstar_size(default:32px) — Star icon size in the rating picker
Examples:
[elsre_form]
[elsre_form require_token="yes"]
[elsre_form star_size="48px"]<h3>One-Time Review Links</h3>
1. Create a page with [elsre_form require_token="yes"].
2. Go to Reviews → Review Links in the admin.
3. Click Generate Link (optionally add a label for your reference).
4. Copy the link and send it to your client.
Each link works only once. After the client submits their review, the link is marked as used.
Developer Integration
Generate review links programmatically from your own plugin or theme:
$link = elsre_create_review_link( 'client@example.com' );
$link = elsre_create_review_link( 'client@example.com', 'John Doe', 42 );
- First parameter: client email (unique identifier — reuses existing unused token if found)
- Second parameter: optional label for admin reference
- Third parameter: optional page ID containing
[elsre_form](auto-detected if omitted) - Returns the full URL with token, or empty string if no form page found
Check availability before calling: function_exists( 'elsre_create_review_link' )
Admin Pages
Reviews List (Dashboard → Reviews)
All submitted reviews are listed here as a standard WordPress post list. Extra columns show the key review data at a glance:
┌──────────────┬────────┬──────────────┬─────────────┬────────────┐
│ Title │ Rating │ Reviewer │ Date │ Status │
├──────────────┼────────┼──────────────┼─────────────┼────────────┤
│ Great hotel! │ ★★★★★ │ Jane Doe │ 2026-03-01 │ Pending │
│ Good service │ ★★★★☆ │ John Smith │ 2026-02-28 │ Published │
└──────────────┴────────┴──────────────┴─────────────┴────────────┘
Publish a review to make it appear on the front end. Leave it as Pending to keep it hidden until you have reviewed it.
Review Edit Screen
Each review has a Review Details meta box below the title field:
┌─────────────────────────────────────────┐
│ REVIEW DETAILS │
├──────────────┬──────────────────────────┤
│ Reviewer Name│ Jane Doe │
│ Review Title │ Perfect weekend getaway! │
│ Rating │ ★ ★ ★ ★ ★ │
│ Review Text │ Fantastic experience... │
│ Review Date │ 2026-03-01 │
└──────────────┴──────────────────────────┘
The star picker is fully keyboard-accessible (arrow keys, Enter, Space).
Review Links Page (Dashboard → Reviews → Review Links)
Generate one-time-use links to send to specific clients:
┌──────────────────────────────────────────────────────────────┐
│ GENERATE NEW LINK │
│ Client Email [client@example.com ] │
│ Label [e.g. John's booking ] (optional) │
│ Form Page [Leave a Review ▾ ] │
│ [ Generate Link ] │
└──────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────┐
│ ALL LINKS │
├──────────────┬───────────┬────────┬────────────┬────────┬───────────┤
│ Email │ Label │ Status │ Created │ Used │ Actions │
├──────────────┼───────────┼────────┼────────────┼────────┼───────────┤
│ jane@... │ Jane Doe │ Active │ 2026-03-01 │ — │ Copy Link │
│ john@... │ John Smith│ Used │ 2026-02-28 │ Mar 01 │ Expired │
└──────────────┴───────────┴────────┴────────────┴────────┴───────────┘
After generating, a success banner shows the link ready to copy:
┌─────────────────────────────────────────────────────────────┐
│ ✓ Link generated! Send this link to your client: │
│ https://example.com/review/?elsre_token=abc123 [ Copy ] │
└─────────────────────────────────────────────────────────────┘
