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-liveupdates - 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
License
This plugin is licensed under the GPLv2 or later.
You are free to use, modify, and distribute it under the same license.






