Init Review System – Reactions, Multi-Criteria, Guest-Friendly

Fast 5-star rating plugin with schema, REST API, shortcode control, localStorage voting. Now with multi-criteria review support.

By Init HTML

Version 1.16 Active Installs 30+ Updated 2 weeks ago 8 months old

Description

Init Review System adds a clean and customizable 5-star rating system to your WordPress site. Votes are stored via REST API, tracked with localStorage, and the average score is auto-calculated and optionally displayed with schema markup.

Built to be lightweight, developer-friendly, and easy to integrate into any theme or custom UI. Now with multi-criteria reviews and an emoji reactions system for richer user interaction.

This plugin is part of the Init Plugin Suite — a collection of minimalist, fast, and developer-focused tools for WordPress.

GitHub repository: https://github.com/brokensmile2103/init-review-system

Highlights:

  • 5-star voting via frontend
  • NEW: Multi-criteria review support
  • NEW: Emoji Reactions with Login Enforcement
  • Average score display
  • Optional login requirement
  • Optional strict IP checking
  • REST API for vote submission
  • JSON-LD schema for SEO
  • Works with any post type
  • Minimal, theme-friendly UI

Features

  • 5-star rating system
  • Multi-criteria review scoring (up to 5 custom criteria)
  • Emoji-based reactions bar with live counts (requires login)
  • REST API endpoint for reactions: /wp-json/initrsys/v1/reactions/toggle
  • Reactions stored in both post meta and dedicated userpost mapping table
  • Accessibility-ready with aria-pressed + aria-live updates
  • Shortcode-based integration
  • Auto-insert blocks before/after content or comments
  • Optional login + IP check to prevent abuse
  • REST API endpoint: /wp-json/initrsys/v1/vote
  • Developer filters and extensible architecture
  • No jQuery, only minimal assets loaded when needed

Usage

[init_review_system]

Displays interactive 5-star voting block.

Attributes:
id: Post ID (default: current post)
class: Custom CSS class
schema: true|false – Output JSON-LD schema markup

[init_review_score]

Displays average score (read-only).

Attributes:
id: Post ID (default: current post)
icon: true|false – Show star icon (default: false)
sub: true|false – Show /5 subtext (default: true)
class: Custom CSS class
hide_if_empty: true|false – Hide if no reviews (default: false)

[init_review_criteria]

Displays multi-criteria review block.

Attributes:
id: Post ID (default: current post)
class: Custom CSS class
schema: true|false – Output schema markup (default: false)
per_page: Number of reviews to show (default: 0 = all)
paged: Current review page number (default: 1)

[init_reactions]

Displays emoji reactions bar under a post.

Attributes:
id: Post ID (default: current post)
class: Custom CSS class
require_login: Always true (login required)

Filters for Developers

This plugin provides filters and actions to let developers customize auto-insert behavior, schema output, review permissions, and REST API logic.

init_plugin_suite_review_system_auto_insert_enabled_score
Enable or disable automatic score output (before/after content).
Applies to: Frontend filter
Params: bool $enabled, string $position, string $post_type

init_plugin_suite_review_system_auto_insert_enabled_vote
Enable or disable automatic voting block insertion.
Applies to: Frontend filter
Params: bool $enabled, string $position, string $post_type

init_plugin_suite_review_system_default_score_shortcode
Change the default shortcode used for score auto-insertion.
Applies to: Frontend
Params: string $shortcode

init_plugin_suite_review_system_default_vote_shortcode
Change the default shortcode used for voting block auto-insertion.
Applies to: Frontend
Params: string $shortcode

init_plugin_suite_review_system_require_login
Force login for submitting reviews, even if disabled in settings.
Applies to: REST /submit-criteria-review
Params: bool $require_login

init_plugin_suite_review_system_min_len_for_ws_check
Adjust minimum length threshold for triggering no-whitespace check.
Applies to: Backend + JS precheck
Params: int $threshold (default 20)

init_plugin_suite_review_system_repetition_threshold
Adjust repetition threshold for detecting excessive word repetition.
Applies to: Backend + JS precheck
Params: int $threshold (default 8)

init_plugin_suite_review_system_schema_type
Customize schema.org type (e.g., Book, Product, Course).
Applies to: Shortcode output
Params: string $type, string $post_type

init_plugin_suite_review_system_schema_data
Modify JSON-LD schema output array.
Applies to: Shortcode output
Params: array $data, int $post_id, string $schema_type

init_plugin_suite_review_system_after_vote
Run custom logic after a single-star vote is submitted.
Applies to: REST /vote
Params: int $post_id, float $score, float $avg_score, int $total_votes

init_plugin_suite_review_system_after_criteria_review
Trigger custom logic after a multi-criteria review is submitted.
Applies to: REST /submit-criteria-review
Params: int $post_id, int $user_id, float $avg_score, string $review_content, array $scores

init_plugin_suite_review_system_get_reaction_types
Customize available reaction types (labels + emojis).
Applies to: Reactions system
Params: array $types

init_plugin_suite_review_system_reaction_meta_key
Customize the meta key used for storing reaction counts.
Applies to: Reaction counts storage
Params: string $meta_key, string $rx_key

init_plugin_suite_review_system_ttl
Set TTL (in seconds) for object cache on review queries. Defaults to 0 (cache disabled). Set a value greater than 0 to enable caching via wp_cache_set with group init_review_system.
Applies to: REST get reviews, get total reviews
Params: int $ttl (default 0)

License

This plugin is licensed under the GPLv2 or later.
You are free to use, modify, and distribute it under the same license.

Plugin comparisons

See how this plugin stacks up against alternatives side by side.