Releases: Skilledup/shuriken-reviews
Release list
Shuriken Reviews 1.15.6 — Shingetsu
Version 1.15.6 — Shingetsu completes the v1.15 architecture roadmap with comment-level contextual ratings, server-side caching, smart client fetch, full add-on extensibility, and a modernized block editor — while raising minimum requirements to WordPress 7.0 and PHP 8.3.
Comment Contextual Ratings
Rate individual WordPress comments with Per-comment voting inside the Comment Template. Shortcodes and the shuriken_comment_rating_id filter are supported.
Performance & Caching
Frontend CSS and JS load only when a rating is present. Contextual stats are batch-fetched during server render, trusted on fresh pages via smart client fetch, and optionally cached through wp_cache_* / Redis. Rate-limit counters use a dedicated transient cache with new rolling-window indexes (DB v1.9.0).
Complete Analytics Architecture
Shuriken_Analytics is now a ~278-line coordinator delegating to five focused services: Formatter, Ranking, Context, Dashboard, and Rating_Stats. Admin charts were extracted into a shared admin-charts.js module.
Add-on Extensibility
Lifecycle hooks (shuriken_container_ready, shuriken_deactivate), REST and AJAX permission filters, consolidated shurikenBlockViewData for frontend add-ons, and an opt-in Delete Data on Uninstall toggle give third-party plugins clean extension points without forking core classes.
Block Editor Modernization
Shared block modules now use ES module imports. Grouped-rating modals and inspector panels were split into dedicated components, and reusable hooks cover API error handling and rating-type scale fields.
Platform Requirements
Minimum WordPress raised to 7.0 (native viewScript conditional loading) and minimum PHP raised to 8.3, aligning with WordPress 7.0 recommendations.
Frontend Vote UX + Label Styles
Star ratings sync immediately after a vote instead of polling on an interval. Rating label descriptions now have consistent typography across all style presets (card, minimal, dark, outlined, boxed).
Shuriken Reviews 1.15.6 RC — Shingetsu
Release candidate for the v1.15 architecture milestone. Shingetsu completes the internal modernization started in 1.15.5 (Oboro): performance wins on the frontend, full add-on extensibility, a decomposed analytics layer, and a modernized block editor toolchain.
⚠️ Pre-release: This is an RC build intended for testing before the stable 1.15.6 release. Please report issues on GitHub Discussions.
Requirements
| Minimum | |
|---|---|
| WordPress | 7.0 |
| PHP | 8.3 |
Upgrading from 1.15.5? Confirm your host meets these requirements before installing.
Highlights
Performance
- Frontend CSS/JS load only when a rating block or shortcode is on the page — no more sitewide asset enqueue on every page view.
- SSR batch pre-fetch for contextual stats via
Shuriken_Contextual_Stats_Collector— pages with many per-post ratings make one batch query per context group instead of one query per widget. - Request-scoped rating memoization with cache invalidation after votes and rating mutations.
Analytics architecture
Shuriken_Analyticsis now a ~278-line coordinator delegating to five focused services: Formatter, Ranking, Context, Dashboard, and Rating_Stats.- Admin Chart.js logic consolidated into shared
admin-charts.js.
Add-on extensibility (Step 7 of Roadmap)
- Lifecycle hooks:
shuriken_container_ready,shuriken_deactivate - REST/AJAX permission filters, admin table/page extension points
- Frontend
wp.hooksintegration:shurikenVoteRequest,shurikenVoteSuccess - Delete Data on Uninstall toggle (Settings → General) — database cleanup is now opt-in
Block editor
- Shared block modules migrated to ES modules
- Grouped-rating modals and inspector panels split into dedicated components
- Reusable
useApiErrorHandlinghook andrenderRatingTypeScaleFieldshelper
UX polish
- Star ratings sync immediately after a vote (removed 4s polling interval)
- Rating label descriptions styled consistently across all presets (card, minimal, dark, outlined, boxed)
For developers
New helper:
shuriken_enqueue_frontend_assets(); // idempotent on-demand frontend enqueueShuriken Reviews 1.15.5 — Oboro
Shuriken Reviews 1.15.5 - Oboro, modernizes the plugin's internals while shipping practical improvements for editors, analytics, block themes, and comments. This release continues the 1.15.x line with a stronger service architecture, better rating presentation controls, more flexible sorting, and several accuracy and resilience fixes.
Highlights
- Modernized the core architecture with a PHP 8.1 backed rating-type enum, focused repositories for ratings/votes/schema work, split REST controllers, and broader use of
readonlyproperties plus constructor property promotion. - Added rating label descriptions and title-hiding controls so ratings fit better in compact layouts like Query Loops, cards, and custom templates.
- Added Query Loop sorting support for block themes, with clearer archive sorting controls for selecting the rating, metric, and direction.
- Improved analytics internals and admin reuse by extracting formatter, ranking, and context services plus shared admin partials for filters, pagination, and vote-history tables.
- Hardened the Latest Comments integration with an optional Swiper slider mode and better fallbacks for environments missing
mbstring, block metadata, or expected extension state.
Added
Shuriken_Rating_Typebacked enum for rating-type behavior and validation.Shuriken_Rating_Repository,Shuriken_Vote_Repository, andShuriken_Schema_Managerfor a more focused database layer.Shuriken_REST_Ratings_ControllerandShuriken_REST_Votes_Controllerfor clearer REST separation.Shuriken_Analytics_Formatter,Shuriken_Analytics_Ranking, andShuriken_Analytics_Contextclasses.- Rating
label_descriptionsupport across admin, blocks, shortcodes, and REST. hideTitleblock support andhide_titleshortcode support.- Query Loop Sort extension for block themes.
- Optional Swiper slider mode for the Latest Comments block.
- Reusable admin partials for pagination, date filters, and votes tables.
Changed
- Replaced legacy callback arrays with first-class callables across core services.
- Applied constructor property promotion and
readonlyproperties to more classes. - Refactored
Shuriken_Databaseinto a backward-compatible facade delegating to focused repositories. - Refactored
Shuriken_REST_APIinto a thin bootstrap around focused controllers. - Merged duplicated scoped analytics methods into cleaner shared paths.
- Modernized the project JavaScript to ES6+ syntax.
- Improved terminology consistency around rating names and descriptions.
- Refined archive sorting controls and related block-theme integration.
- Polished responsive analytics filter-bar behavior in admin.
Fixed
- Fixed contextual item-stats date filter behavior.
- Fixed binary rating average handling in contextual summary calculations.
- Fixed analytics ranking issues affecting low-performers, demoralize logic, like/dislike normalization, threshold handling, and inversion scoping.
- Fixed incoming scale normalization to avoid invalid validation failures for supported rating-type combinations.
- Fixed Latest Comments fallback behavior when
mbstringor expected block metadata is unavailable. - Fixed duplicate ratings-page inclusion by using safer include behavior.
- Fixed stricter vote-table row matching in the reusable votes-table partial.
- Reduced duplicated admin analytics JavaScript and centralized shared behavior.
Developer Notes
- Public helper accessors now better match the decomposed service layer.
- REST permission handling is cleaner through shared permission logic.
- Internal analytics and admin template structure are substantially easier to extend in the ongoing 1.15.x cycle.
Upgrade Notes
- No new database version bump is introduced in this release.
- Existing integrations using
shuriken_db()remain compatible, though newer focused helpers are now available internally.
Full Changelog
See docs/CHANGELOG.md for the detailed version history.
Shuriken Reviews 1.15.4 — Yozora
Shuriken Reviews 1.15.4, expands contextual analytics, improves mixed-scope reporting, and hardens frontend behavior for modern block-theme navigation.
Highlights
- New Per-Post analytics workspace for ratings with contextual votes, including top-post charts, contextual average distribution, trending contexts, and sortable per-context tables.
- New context drill-down screen for a single rating on a single post/page/product, with summary cards, type-aware charts, and paginated vote history.
- New Global Votes vs. Per-Post Votes scope toggle on Item Stats pages so mixed-scope ratings can be analyzed without combining unrelated totals.
- Both rating blocks now support WordPress client-side navigation, and frontend widgets automatically re-initialize after Interactivity Router navigations.
- Ratings admin now shows mixed-scope badges such as
Global + 6 postswhen a rating has both global and contextual activity. - Item Stats filter controls were reorganized into a more responsive unified filter bar.
Improvements
- Parent rating breakdowns now respect the active scope and selected date range across stats, vote history, and charts.
- Global-only analytics queries now use scope-filtered totals, rolling averages, approval trends, and cumulative counts.
- Analytics and ratings-list displays received icon and formatting polish for stars and binary vote types.
- Public docs were updated for 1.15.4, including README, changelog, About tab copy, and REST API reference updates for contextual stats.
Shuriken Reviews 1.14.10 — Yozora
Contextual (Per-Post) Voting
A single rating placed in a post template now records independent vote tallies per post — no duplicate configurations needed. Enable the Per-post voting toggle in either block and archive pages can be sorted by rating score.
Multiple Rating Types & Configurable Scales
Three rating types are now supported: Star (1–N stars), Numeric (slider with a configurable 0–100 scale), and Thumbs (Like/Dislike or Approval). All types render correctly in the FSE editor preview, shortcodes, and the ratings list.
Inline Mirror Management in the Block Editor
Create, rename, and delete mirrors for any rating directly from the block editor — without leaving the page. The Grouped Rating block also exposes mirror management for each sub-rating.
Block Editor Sidebar Panel
A new Document Settings panel in the block editor fetches live per-post contextual vote stats while editing any post that has received contextual votes, keeping authors informed without leaving the editor.
REST API Access Control
The minimum WordPress capability for REST API write operations (POST, PUT, DELETE) is now configurable from Settings → General. Override it further with the new shuriken_rest_manage_capability filter — useful for multi-author sites that need Editors or Authors to manage ratings.
Enhanced Analytics Dashboard
The analytics dashboard gains vote-change percentages, benchmark comparisons, member vs. guest voter-type breakdown, a Contextual Posts stat card, and a per-post context column in the Recent Activity table.
Lucide SVG Icon System
All emoji and glyph characters throughout the admin, analytics, ratings list, settings, and block editor previews have been replaced with inline Lucide SVG icons for consistent rendering and full CSS styling control.
Numeric Display Precision & Bug Fixes
Numerous accuracy fixes: parent rating totals no longer inflate when negative sub-ratings use non-default scales; numeric display-only values retain one decimal place after stats refresh; analytics SQL precision raised to 4 decimal places to eliminate rounding artefacts.
Shuriken Reviews 1.11.4 — Yoru
Editor Request Optimization & CDN Compatibility & Shortcode Extensions
Fixes HTTP 508 (Resource Limit) errors and "invalid JSON response" errors in the block editor when editing posts with multiple Shuriken blocks, particularly on LiteSpeed/shared hosting behind CDNs.
Changes:
- Request deduplication — All block editor API calls are now deduplicated at the promise level; concurrent calls for the same key share a single in-flight request
- Automatic batch fetching — Individual
fetchRating()calls across multiple blocks are coalesced into a singleGET /ratings/batchrequest per render tick - CDN-safe REST headers — All Shuriken REST responses now send
Cache-Control: no-storeandCDN-Cache-Control: no-storeto prevent Cloudflare from caching or HTML-transforming JSON responses - Output buffer protection — Stray PHP output from other plugins is discarded before JSON serialization on Shuriken routes
- Authentication fix —
rest_authentication_errorsfilter scoped to only bypass nonce verification for the two public endpoints (/nonce,/ratings/stats) - Grouped rating shortcode — New
[shuriken_grouped_rating]shortcode withgrid/listlayouts - Preset styles & custom colors — Both shortcodes now accept
style,accent_color, andstar_colorparameters
Shuriken Reviews 1.11.1 — Yoru
Mirror Management in Block Editor
The Grouped Rating block now provides full mirror management directly inside the editor so, no need to leave the block to manage mirrors:
- Unified Rating Selector A single searchable dropdown that shows both parent ratings and their mirrors, automatically decomposing the selection into the correct rating and mirror IDs
- Inline Mirror CRUD Create, rename, and delete mirrors for both the parent rating and each sub-rating from the Edit Parent and Manage Sub-Ratings modals
- Inline Rename Click the edit icon on any mirror card to rename it in place with keyboard support (Enter to save, Escape to cancel)
- Polished Modal UI All modal dialogs (Create, Edit Parent, Manage Sub-Ratings) have been redesigned with consistent card layouts, section headers, badges, and hover states
Shared Block Helpers
- Code Sharing Common utilities (error handling, search debounce, title tag options, average calculation) extracted into a shared helpers module used by both blocks
- New Search Type The REST search endpoint now supports a "parents_and_mirrors" type that returns parent ratings alongside their mirrors, with vote data automatically resolved
New REST Endpoints
GET /ratings/{id}/mirrors— Returns all mirrors of a given rating, used by the block editor to populate mirror listsGET /ratings/batch?ids=…— Batch-fetches multiple ratings in one request with mirror vote data resolved, replacing many individual API calls
Shuriken Reviews 1.10.3 — Yoru
FSE Block Redesign
Both FSE blocks have been completely redesigned with a clean preset-based system, replacing the previous complex per-attribute settings:
- Shuriken Rating Block
- 5 Visual Presets Classic (default — fully backward-compatible), Card, Minimal, Dark, Outlined
- Accent & Star Colour Pickers Two colour overrides that cascade through the selected preset via CSS custom properties
- Live Editor Preview Preset classes applied directly to the block wrapper so the FSE preview matches the frontend exactly
- Backward Compatible Existing blocks without a style class automatically render as Classic — no content migration needed
- Shuriken Grouped Rating Block
- 5 Visual Presets Gradient (default), Minimal, Boxed, Dark, Outlined — each with distinct parent and child card styles
- Grid / List Layout Switch child ratings between a responsive card grid and a full-width stacked list from the Layout panel
- Accent & Star Colour Pickers Same colour override system as the single rating block, applied to parent and child cards
- Simplified Settings Panels Reduced from 5 inspector panels to 3 (Settings, Layout, Colors) for a cleaner editing experience
Shuriken Reviews 1.10.1 — Yoru
The first public release of Shuriken Reviews, a flexible WordPress rating system with parent-child ratings, Gutenberg blocks, shortcodes, a REST API, an analytics dashboard, and vote rate limiting.
Highlights
- Hierarchical ratings — parent/child relationships, mirror ratings, positive/negative effects, and display-only aggregates
- Gutenberg blocks — FSE-compatible single and grouped rating blocks
- Cache-proof voting — fetches fresh stats and nonces via REST API on every page load; works with any caching plugin out of the box
- Vote rate limiting — configurable cooldown, hourly and daily limits for members and guests (opt-in, disabled by default)
- Analytics dashboard — trends, top-rated items, voter activity page, and CSV export
- 25+ hooks, dependency injection, 9 exception types, and interface-based mocks for unit testing
- RTL + i18n ready — Persian (
fa_IR) translation included (still in process)
Requirements: WordPress 6.2+, PHP 8.1+
📚 Documentation · README