WP Manifestindependent plugin directory
manifest / social / rave-reviewer

Rave Reviewer

Secure moderated WordPress review and testimonial plugin for Elementor and classic WordPress pages.

by Toxima · github.com/iamtoxima/rave-reviewer · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/iamtoxima/rave-reviewer/archive/refs/heads/main.zip

Readme

Rave Reviewer

Rave Reviewer is a secure, moderated WordPress review and testimonial plugin by Toxima. It lets customers submit reviews from the front end, lets administrators add historical reviews, and provides scoped shortcodes that work in Elementor without affecting the rest of the site's styling.

Features

  • Front-end review form with moderation before publication
  • Google reCAPTCHA v2 Checkbox with server-side verification
  • Nonce, honeypot, duplicate protection, and rate limiting
  • Private customer email storage
  • Administrator-managed rating, product, location, source, verification, and featured status
  • Customer photo support through the WordPress Featured Image field
  • Responsive grid and dependency-free carousel layouts
  • Elementor-compatible shortcodes
  • Queued moderation email through WordPress Cron
  • WordPress privacy-policy text, personal-data export, and personal-data erasure
  • Cache versioning with deterministic invalidation
  • Optional full data removal on uninstall

Requirements

  • WordPress 6.4 or newer
  • PHP 8.0 or newer
  • HTTPS is strongly recommended
  • A Google reCAPTCHA v2 Checkbox site if reCAPTCHA protection is enabled

Installation

  1. Download the release ZIP.
  2. In WordPress, go to Plugins > Add New > Upload Plugin.
  3. Upload the ZIP and activate Rave Reviewer.
  4. Open Rave Reviewer > Settings.
  5. Configure display preferences, the notification address, rate limits, and reCAPTCHA.
  6. Add the shortcodes to a page or Elementor Shortcode widget.

Shortcodes

Display published reviews:

[rave_reviewer_reviews]

Display the customer submission form:

[rave_reviewer_form]

Example display options:

[rave_reviewer_reviews layout="grid" limit="6" featured_only="yes" show_photo="yes"]

Supported review-display attributes:

Attribute Values Default
layout grid, carousel Plugin setting
limit 1 to 50 Plugin setting
featured_only yes, no no
show_heading yes, no yes
show_verified yes, no Plugin setting
show_location yes, no Plugin setting
show_product yes, no yes
show_photo yes, no yes

The form accepts heading and button_text attributes.

Adding past-client reviews

  1. Open Rave Reviewer > Add Review.
  2. Enter the customer display name as the title.
  3. Enter the review in the editor.
  4. Set the rating, optional product and location, and choose Imported past review as the source.
  5. Only mark the review as verified if you have evidence it came from that customer.
  6. Publish when ready.

Public customers create Pending reviews. Only an administrator with manage_options can edit or publish them.

reCAPTCHA

Create a reCAPTCHA v2 Checkbox key pair in the Google reCAPTCHA admin console. Add every production hostname that serves the review form. Enter the site key, secret key, and expected hostname in Rave Reviewer > Settings.

For stronger secret management, place keys in wp-config.php:

define('RAVE_REVIEWER_RECAPTCHA_SITE_KEY', 'your-site-key');
define('RAVE_REVIEWER_RECAPTCHA_SECRET_KEY', 'your-secret-key');

Constants override values saved in WordPress. Do not commit real keys to GitHub.

Security model

  • All public fields are length-limited, sanitized on input, and escaped on output.
  • Form submissions require a nonce and include a timing signal for abuse logging.
  • A hidden honeypot rejects simple bots.
  • reCAPTCHA tokens are verified with Google's server API and the returned hostname is checked.
  • Rate-limit identifiers are HMAC fingerprints; raw IP addresses are not stored by the plugin.
  • Customer emails are stored as private post metadata and are never rendered publicly.
  • Reviews remain pending until an administrator publishes them.
  • Moderation notifications are scheduled asynchronously through WordPress Cron.
  • Known failures map to safe, specific messages without exposing stack traces or secrets.

Caching

Published review ID lists are cached for 10 minutes. The cache key contains a generation number. Publishing, editing, deleting, anonymizing, or changing display settings increments that generation, so old entries become unreachable immediately and expire naturally.

Privacy and retention

Rave Reviewer registers suggested text under Settings > Privacy and integrates with WordPress personal-data export and erasure tools.

Erasure removes the customer name, private email, and location. Published review text is retained in anonymized form so that approved public content and moderation history remain coherent. Site owners should document their own legal basis and retention period.

By default, uninstalling the plugin keeps reviews and settings. Enable Permanently delete all reviews and settings when the plugin is deleted only if that is your intended policy.

Development

The public CSS uses only .rave-reviewer-* selectors and the JavaScript has no framework dependency. The plugin does not require Composer or npm.

Before packaging a release:

Get-ChildItem -Recurse -Filter *.php | ForEach-Object { php -l $_.FullName }

Save PHP files as UTF-8 without a byte-order mark. A BOM before <?php can emit output early and break WordPress cookies, redirects, downloads, and REST responses.

Contributing

See CONTRIBUTING.md. Security issues should follow SECURITY.md.

License

Rave Reviewer is licensed under the GNU General Public License v2.0 or later. See LICENSE.

Read the full README on GitHub →