Skip to content

Releases: Skilledup/shuriken-reviews

Shuriken Reviews 1.15.6 — Shingetsu

Choose a tag to compare

@qasedak qasedak released this 19 Sep 16:18

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

Choose a tag to compare

@qasedak qasedak released this 07 Jul 14:42

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_Analytics is 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.hooks integration: 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 useApiErrorHandling hook and renderRatingTypeScaleFields helper

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 enqueue

Shuriken Reviews 1.15.5 — Oboro

Choose a tag to compare

@qasedak qasedak released this 03 May 19:15

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 readonly properties 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_Type backed enum for rating-type behavior and validation.
  • Shuriken_Rating_Repository, Shuriken_Vote_Repository, and Shuriken_Schema_Manager for a more focused database layer.
  • Shuriken_REST_Ratings_Controller and Shuriken_REST_Votes_Controller for clearer REST separation.
  • Shuriken_Analytics_Formatter, Shuriken_Analytics_Ranking, and Shuriken_Analytics_Context classes.
  • Rating label_description support across admin, blocks, shortcodes, and REST.
  • hideTitle block support and hide_title shortcode 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 readonly properties to more classes.
  • Refactored Shuriken_Database into a backward-compatible facade delegating to focused repositories.
  • Refactored Shuriken_REST_API into 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 mbstring or 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

Choose a tag to compare

@qasedak qasedak released this 10 Apr 18:42

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 posts when 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

Choose a tag to compare

@qasedak qasedak released this 07 Apr 20:11

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

Choose a tag to compare

@qasedak qasedak released this 27 Mar 18:29

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 single GET /ratings/batch request per render tick
  • CDN-safe REST headers — All Shuriken REST responses now send Cache-Control: no-store and CDN-Cache-Control: no-store to 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 fixrest_authentication_errors filter scoped to only bypass nonce verification for the two public endpoints (/nonce, /ratings/stats)
  • Grouped rating shortcode — New [shuriken_grouped_rating] shortcode with grid/list layouts
  • Preset styles & custom colors — Both shortcodes now accept style, accent_color, and star_color parameters

Shuriken Reviews 1.11.1 — Yoru

Choose a tag to compare

@qasedak qasedak released this 25 Mar 20:00

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 lists
  • GET /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

Choose a tag to compare

@qasedak qasedak released this 23 Feb 14:59

FSE Block Redesign

Both FSE blocks have been completely redesigned with a clean preset-based system, replacing the previous complex per-attribute settings:

  1. 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
  1. 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

Choose a tag to compare

@qasedak qasedak released this 22 Feb 15:54

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