{"id":319458,"date":"2026-06-09T22:21:50","date_gmt":"2026-06-09T22:21:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/reviso-for-bricks\/"},"modified":"2026-06-09T22:21:28","modified_gmt":"2026-06-09T22:21:28","slug":"reviso-for-bricks","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/reviso-for-bricks\/","author":18514139,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.6","stable_tag":"1.0.6","tested":"7.0","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"Reviso for Bricks","header_author":"Reviso","header_description":"The collaboration layer Bricks Builder is missing \u2014 pinned comments, threaded replies, client approvals, and shareable single-page review links, native to the builder.","assets_banners_color":"5452ff","last_updated":"2026-06-09 22:21:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":78,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.6":{"tag":"1.0.6","author":"benelwoods","date":"2026-06-09 22:21:28"}},"upgrade_notice":{"0.20.0":"<p>Comments are now linked to the Review they were left under, with a per-Review filter in the all-comments admin view. Adds a non-destructive <code>review_id<\/code> column to <code>wp_reviso_comments<\/code> (existing comments keep working with NULL = legacy). Safe upgrade.<\/p>","0.19.0":"<p>Major reviewer-experience overhaul: bottom-left page nav, off-scope banner, auto-bridge between in-scope pages, Lead invite from dashboard, role-aware approve, draggable comment form. Plus several fixes. Safe upgrade \u2014 no DB changes.<\/p>","0.18.0":"<p>Fixes a 404 on \/reviso-review\/ landings after upgrading from 0.16.x \u2192 0.17.x. Adds admin-bar quick-review, post-type support in the create wizard, light\/dark white-label logos, Approvals admin tab. Safe upgrade.<\/p>","0.17.0":"<p>Architecture split \u2014 AI \/ white-label \/ integrations \/ digests are now in a separate Pro addon plugin. If you were using those features, install Reviso for Bricks \u2014 Pro from getreviso.io to keep them.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3566619,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3566619,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3566619,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3566619,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3566619,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.6"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Comment overlay in Bricks Builder \u2014 pinned threads, dark\/light theme, filterable status.","2":"Client review link \u2014 a reviewer leaves pinned feedback and marks the page approved, no login required.","3":"Settings \u2014 comment defaults plus email notifications with optional burst-coalescing and a test-email button.","4":"Approvals \u2014 the admin Approvals tab showing who signed off on each page."}},"plugin_section":[],"plugin_tags":[198723,198725,156887,107,108],"plugin_category":[42,44],"plugin_contributors":[266404],"plugin_business_model":[],"class_list":["post-319458","plugin","type-plugin","status-publish","hentry","plugin_tags-bricks","plugin_tags-bricks-builder","plugin_tags-client-review","plugin_tags-comments","plugin_tags-feedback","plugin_category-contact-forms","plugin_category-discussion-and-community","plugin_contributors-benelwoods","plugin_committers-benelwoods"],"banners":{"banner":"https:\/\/ps.w.org\/reviso-for-bricks\/assets\/banner-772x250.png?rev=3566619","banner_2x":"https:\/\/ps.w.org\/reviso-for-bricks\/assets\/banner-1544x500.png?rev=3566619","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/reviso-for-bricks\/assets\/icon.svg?rev=3566619","icon":"https:\/\/ps.w.org\/reviso-for-bricks\/assets\/icon.svg?rev=3566619","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Reviso for Bricks<\/strong> turns Bricks Builder into a true collaboration tool. Reviewers (clients, teammates, stakeholders) leave pinned feedback directly on your pages \u2014 no logins, no email chains, no PDF round-trips.<\/p>\n\n<h4>What's in the free version<\/h4>\n\n<ul>\n<li><strong>Pinned comments<\/strong> on any Bricks element \u2014 desktop, tablet, or mobile<\/li>\n<li><strong>Threaded replies<\/strong> so a back-and-forth doesn't sprawl across messages<\/li>\n<li><strong>Status tracking<\/strong> \u2014 open, in progress, resolved \u2014 with filters<\/li>\n<li><strong>Single-page review links<\/strong> \u2014 share one page at a time with anyone, no login required<\/li>\n<li><strong>Admin-bar quick-review<\/strong> \u2014 spin up a review for the current page (or whole site, Pro) from the Reviso icon on the front-end admin bar<\/li>\n<li><strong>Client approvals<\/strong> \u2014 reviewers can mark a page as approved (own admin tab \u2014 Reviso \u2192 Approvals)<\/li>\n<li><strong>Email notifications<\/strong> when someone leaves a comment, replies, or approves a page \u2014 with optional burst-coalescing so a flurry of comments arrives as a single email<\/li>\n<li><strong>Bricks-native UI<\/strong> \u2014 the comment overlay matches the builder so it doesn't feel bolted on<\/li>\n<li><strong>Element-anchored pins<\/strong> that survive page edits (three fallback strategies \u2014 DOM, content, position)<\/li>\n<\/ul>\n\n<h4>Available with the Pro addon<\/h4>\n\n<p><a href=\"https:\/\/getreviso.io\/pricing\/\">Reviso for Bricks \u2014 Pro<\/a> extends the free plugin with:<\/p>\n\n<ul>\n<li><strong>Multi-page Reviews<\/strong> \u2014 bundle a whole site (or any subset of items) into one shareable Review, covering any post type and Bricks templates<\/li>\n<li><strong>Email-restricted Reviews<\/strong> \u2014 each invitee gets a private magic link, with four roles (Viewer \/ Reviewer \/ Approver \/ Lead)<\/li>\n<li><strong>AI<\/strong> \u2014 automatic comment triage (bug \/ design \/ copy \/ content) and AI-summarised feedback rollups<\/li>\n<li><strong>White-label<\/strong> \u2014 your agency branding on the review portal, with light + dark logos that auto-pick the right variant for each surface (portal, builder splash, email header)<\/li>\n<li><strong>Integrations<\/strong> \u2014 Slack, Discord, and generic webhooks (Zapier\/Make \u2192 ClickUp, Trello, Jira, \u2026)<\/li>\n<li><strong>Email digests<\/strong> \u2014 optional weekly summaries<\/li>\n<li><strong>Advanced notifications<\/strong> \u2014 multi-recipient delivery, From\/Reply-To control, printable approval certificates<\/li>\n<li><strong>Audit log<\/strong> + per-reviewer revoke<\/li>\n<li><strong>Concurrent reviews<\/strong> with configurable expiry \u2014 including a no-end-date option<\/li>\n<\/ul>\n\n<p>The Pro addon requires this free plugin to be installed.<\/p>\n\n<h4>Privacy &amp; data<\/h4>\n\n<p>Reviso stores comment data <strong>on your own WordPress site<\/strong>. We don't see your reviewers' feedback. Optional anonymous telemetry (off by default) is opt-in. Full details in our <a href=\"https:\/\/getreviso.io\/privacy-policy\/\">privacy policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin or install from the WordPress.org repository.<\/li>\n<li>Activate <strong>Reviso for Bricks<\/strong>.<\/li>\n<li>Open Bricks Builder on any page \u2014 the comment overlay appears in the bottom-right.<\/li>\n<li>(Optional) Install <a href=\"https:\/\/getreviso.io\/pricing\/\">Reviso Pro<\/a> to unlock multi-page Reviews and the rest of the paid feature set.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20a%20license%20key%3F\"><h3>Does this require a license key?<\/h3><\/dt>\n<dd><p>No \u2014 the free plugin is fully functional. A license key is only needed if you also install the <a href=\"https:\/\/getreviso.io\/pricing\/\">Pro addon<\/a>.<\/p><\/dd>\n<dt id=\"do%20my%20reviewers%20need%20a%20wordpress%20account%3F\"><h3>Do my reviewers need a WordPress account?<\/h3><\/dt>\n<dd><p>No. Share a review link and your reviewer comments as themselves \u2014 Reviso captures their name and email when they leave their first comment.<\/p><\/dd>\n<dt id=\"is%20this%20only%20for%20bricks%20builder%3F\"><h3>Is this only for Bricks Builder?<\/h3><\/dt>\n<dd><p>The pin-on-element UX is designed around Bricks. We use Bricks's element IDs (<code>brxe-*<\/code>) for anchoring. Support for other builders is not currently on the roadmap.<\/p><\/dd>\n<dt id=\"where%20is%20my%20data%20stored%3F\"><h3>Where is my data stored?<\/h3><\/dt>\n<dd><p>In your own WordPress database (<code>wp_reviso_*<\/code> tables). Reviso doesn't transmit comment content anywhere unless you opt in to the optional telemetry ping (which only sends version numbers + feature-enabled flags \u2014 never comment content or PII).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>WordPress.org Plugin Directory compliance: the free plugin now contains only its own fully-functional features \u2014 single-page public-link reviews, pinned comments, threaded replies, client approvals, and email notifications. Multi-page \/ entire-site Reviews, email-restricted Reviews, advanced notification delivery, printable approval certificates, and white-label branding are provided solely by the separate Reviso for Bricks \u2014 Pro add-on and are no longer present (even inactively) in the free plugin.<\/li>\n<li>Removed all licence-tied wording from the free plugin's review flow: a review can be \"read-only\" as a neutral state (an add-on decides when), with no upgrade\/renew messaging in the free plugin.<\/li>\n<li>The free plugin now contains no white-label code, no licence checks, and no licence-activation code of any kind \u2014 every paid-feature concern, including licence activation, lives entirely in the separate Pro add-on, which the free plugin only ever points to.<\/li>\n<li>New free control: \"Coalesce bursts\" under Settings \u2192 Notifications batches a flurry of comments into a single email (configurable, on by default) so reviewers leaving several comments in a row don't trigger an email each.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Comment status (open \/ in progress \/ resolved) can now be set right from the Bricks builder by any editor.<\/li>\n<li>The client review portal and the printable approval certificate now load their styles and scripts the standard WordPress way.<\/li>\n<li>Internal housekeeping and WordPress.org plugin directory compliance improvements.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>The Reviso Pro page and upgrade prompts now offer a 14-day free trial (no card) alongside the paid plans.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release. The free plugin covers pinned comments, threaded replies, single-page client review links, client approvals, and email notifications; the optional Reviso for Bricks \u2014 Pro add-on adds multi-page Reviews, AI, white-label, integrations, digests, and more.<\/li>\n<\/ul>\n\n<h4>0.21.7<\/h4>\n\n<ul>\n<li>Fixed: client approvals work again on single-page review links \u2014 the \"mark approved\" button had been hidden for public links by a recent change.<\/li>\n<\/ul>\n\n<h4>0.21.6<\/h4>\n\n<ul>\n<li>The Reviso Pro page buttons now link straight to checkout for the chosen plan, with monthly\/annual options.<\/li>\n<li>Admin prompts are tidier \u2014 the anonymous-diagnostics opt-in and the bug\/feedback prompt no longer appear at the same time.<\/li>\n<\/ul>\n\n<h4>0.21.5<\/h4>\n\n<ul>\n<li>Fixed: client review links no longer 404 on sites using \"Plain\" permalinks \u2014 the link now falls back to a query-string URL when pretty permalinks aren't enabled.<\/li>\n<\/ul>\n\n<h4>0.21.4<\/h4>\n\n<ul>\n<li>Approval certificates are now emailed as a proper PDF instead of an HTML file.<\/li>\n<li>The \"New review\" wizard now shows the Pro scope\/reviewer options (Selected pages, Entire website, email-restricted) as upgrade hints, and a dismissible upgrade notice appears on Reviso's own admin screens.<\/li>\n<\/ul>\n\n<h4>0.21.3<\/h4>\n\n<ul>\n<li>Updated the Reviso Pro overview page with current plans and pricing.<\/li>\n<\/ul>\n\n<h4>0.21.2<\/h4>\n\n<ul>\n<li>Cleaner Settings: the free plugin now shows just the settings it actually provides (General, Comments) plus a single \"Reviso Pro\" overview page. The License, White Label, AI and Integrations tabs now appear only when the Reviso for Bricks \u2014 Pro add-on is installed.<\/li>\n<\/ul>\n\n<h4>0.21.1<\/h4>\n\n<ul>\n<li>Fixed: client review comments are now scoped to the review they belong to \u2014 reviewers no longer see comments from other reviews on a page shared by more than one review.<\/li>\n<li>Housekeeping: the optional paid extras (team assignment, advanced email delivery) now live entirely in the separate Reviso for Bricks \u2014 Pro add-on.<\/li>\n<\/ul>\n\n<h4>0.21.0<\/h4>\n\n<ul>\n<li>New: Reviewer links for Pro reviews (multi-page or email-restricted) now degrade gracefully to <strong>read-only<\/strong> if the site's Pro plan lapses \u2014 clients keep reading the feedback and a banner explains new comments are paused, instead of the link breaking. Enforced server-side.<\/li>\n<li>New: Opt-in anonymous telemetry now includes a <code>trial_state<\/code> field, so we can understand how the Pro trial is working without collecting anything identifying.<\/li>\n<li>Internal: added <code>Reviso_Comments::count_all()<\/code> and <code>Reviso_Review::is_pro_locked()<\/code> read APIs used by the Pro add-on.<\/li>\n<\/ul>\n\n<h4>0.20.11<\/h4>\n\n<ul>\n<li>Internal: Plugin Check cleanups \u2014 translators comment now sits directly above the <code>__()<\/code> call inside <code>sprintf()<\/code> (the rule treats the comment as belonging only to the line immediately following it), and the raw <code>$_POST['author_email']<\/code> read in the comment-submit handler is now routed through <code>sanitize_text_field()<\/code> purely to satisfy the input-sanitization scanner (the value is still email-validated via <code>sanitize_email()<\/code> for storage).<\/li>\n<\/ul>\n\n<h4>0.20.10<\/h4>\n\n<ul>\n<li>Dev: New <code>reviso_review_auto_open_sidebar<\/code> filter \u2014 site-specific extensions can suppress the FE's \"open the comment sidebar on page load\" behaviour per-review. Default true (existing behaviour preserved). Receives the boolean and the Review row; return false to make the reviewer click the FAB themselves.<\/li>\n<\/ul>\n\n<h4>0.20.9<\/h4>\n\n<ul>\n<li>Fix: <strong>Reviewer can actually submit with blank email.<\/strong> 0.20.7 made the email field optional in the identity gate and the server, but the client-side <code>identified()<\/code> check still required email to be truthy \u2014 so a name-only reviewer would pass the gate, then the engine's \"are we identified yet?\" check would fail on the next render and re-open the gate in a loop. Fixed: <code>identified()<\/code> now returns true for any reviewer with a name (or a logged-in WP user).<\/li>\n<\/ul>\n\n<h4>0.20.8<\/h4>\n\n<ul>\n<li>Fix: <strong>Reviewer page-handoff is cache-safe.<\/strong> The redirect from the dashboard's page card to the target page now carries a per-session cache-buster query arg, so page-cache plugins (WP Rocket, W3 Total Cache, LiteSpeed Cache, Cloudflare APO, server-level fastcgi_cache, etc.) can't return a stale overlay-less response on the first hit after starting a session.<\/li>\n<li>Fix: <strong>Pages-nav navigation routes through the handoff.<\/strong> Clicking a different page in the floating pages-nav now goes through <code>\/reviso-review\/&lt;slug&gt;\/item\/&lt;id&gt;\/<\/code> instead of the bare permalink, so the session re-bootstraps on every navigation and the overlay appears reliably even when the destination page is cached.<\/li>\n<li>Improvement: Removed the \"Only the site owner sees this \u2014 we won't email you.\" line from the identity gate (was added in 0.20.7; cluttered the form). The email field stays labelled \"(optional)\".<\/li>\n<li>Dev: New <code>reviso_review_exclude_name_prefixes<\/code> filter on <code>Reviso_Review::find()<\/code> and <code>count()<\/code> \u2014 site-specific extensions can hide ephemeral Reviews (e.g. an auto-generated demo) from the admin list without patching core. Pass an array of name prefixes; rows whose <code>name<\/code> LIKE prefix% are excluded.<\/li>\n<\/ul>\n\n<h4>0.20.7<\/h4>\n\n<ul>\n<li>Improvement: <strong>Reviewer email is now optional<\/strong> on \"anyone with link\" reviews. The plugin never emails reviewers in link mode \u2014 their address is only shown alongside their name in the site owner's notification emails \u2014 so requiring it was friction without benefit. The identity gate now labels the email field \"(optional)\" and explicitly notes \"Only the site owner sees this \u2014 we won't email you.\" Name is still required. Email-restricted reviews continue to pre-fill the invitee's email from their magic link (unchanged).<\/li>\n<\/ul>\n\n<h4>0.20.6<\/h4>\n\n<ul>\n<li>New: <strong>Exit review mode<\/strong> button on the off-scope banner. Reviewers who wandered onto a page outside the review's scope can now drop the session in one click without manually clearing cookies or closing the browser.<\/li>\n<li>Tweak: Admin-bar quick-review panel \u2014 removed the forced full-width on the CTA pill and locked the \"New Review\" link to inline-flex so its arrow can't be displaced by inherited styles.<\/li>\n<\/ul>\n\n<h4>0.20.5<\/h4>\n\n<ul>\n<li>Fix: <strong>Admin-bar quick-review panel<\/strong> \u2014 \"Pro feature\" upgrade pill now has proper horizontal padding, and the \"New Review \u2192\" link no longer wraps the arrow onto a new line.<\/li>\n<li>Fix: <strong>Quick-review panel skipped on the reviewer dashboard URL.<\/strong> It was sticking on \"Loading quick review\u2026\" there because the dashboard has no post context. The Reviso admin-bar root remains clickable so logged-in admins can still navigate to Settings.<\/li>\n<\/ul>\n\n<h4>0.20.4<\/h4>\n\n<ul>\n<li>Fix: <strong>Reviewer page-handoff URL renamed <code>\/page\/&lt;id&gt;\/<\/code> \u2192 <code>\/item\/&lt;id&gt;\/<\/code>.<\/strong> The <code>\/page\/N\/<\/code> segment collides with WordPress's built-in pagination, so canonical-redirect handlers (core's <code>redirect_canonical<\/code>, Rank Math, etc.) were stripping it and bouncing reviewers back to the dashboard URL. Rewrites flush automatically on first admin load after upgrade.<\/li>\n<\/ul>\n\n<h4>0.20.3<\/h4>\n\n<ul>\n<li>Fix: <strong>Reviewer page click is now hardened against theme\/SPA click interception.<\/strong> The dashboard renders inside the active theme so any <code>wp_head<\/code>-enqueued click handler (smooth page transitions, AJAX nav, etc.) was eating the navigation. Page cards now use a capture-phase listener that forces a hard browser navigation, plus inline onclick + target=\"_top\" as belt-and-braces.<\/li>\n<li>Internal: Server-side debug logging (gated on <code>WP_DEBUG<\/code>) added to the review page-handoff path so the redirect chain is traceable from the PHP error log when something does go wrong.<\/li>\n<\/ul>\n\n<h4>0.20.2<\/h4>\n\n<ul>\n<li>Fix: <strong>Reviewer page click reliably enters review mode.<\/strong> The page-handoff endpoint now sets the per-page session cookies on its own response instead of relying on a second-hop bridge \u2014 robust against caching plugins, security plugins, and CDN edge rules that strip query args before the bridge can run.<\/li>\n<li>Improvement: <strong>Free wizard: \"Create as Draft\" when an active review exists.<\/strong> The submit button label adapts so it's clear the new review won't go live immediately; a warning panel on step 3 explains why and what to do next.<\/li>\n<li>Improvement: <strong>Activate buttons disabled with explanatory tooltip<\/strong> on the Reviews table and the per-review screen when another review is already active on Free \u2014 no more click-then-error.<\/li>\n<li>Improvement: <strong>Reviews table column overflow fix<\/strong> \u2014 dropped the fixed table layout so the action column has room for both the Activate\/Deactivate button and the Manage \u2192 link.<\/li>\n<\/ul>\n\n<h4>0.20.1<\/h4>\n\n<ul>\n<li>Fix: <strong>Anyone-with-link reviews now open per-page review mode reliably.<\/strong> Clicking a page card on the reviewer dashboard could silently bounce back to the dashboard when the target page was the front page set to \"Latest posts\" (or any other queryless URL) \u2014 the handoff now passes the page ID explicitly so the legacy session bridge no longer has to infer it from <code>get_queried_object_id()<\/code>.<\/li>\n<li>Improvement: <strong>Free tier \u2014 stage multiple reviews as Draft.<\/strong> Free still caps you at one <em>active<\/em> review at a time, but you can now create additional reviews and keep them as Drafts. Activating one auto-blocks the others; the Reviews table has inline Activate\/Deactivate buttons so switching between them is one click.<\/li>\n<li>Fix: <strong>AI and Integrations tabs no longer show an orphaned Save button<\/strong> when Pro\/Agency isn't installed. The AI tab now also shows the \"Upgrade to Pro\" card that the other Pro-gated tabs use, instead of an empty form.<\/li>\n<\/ul>\n\n<h4>0.20.0<\/h4>\n\n<ul>\n<li>New: <strong>Comments link to the Review they were left under.<\/strong> A new <code>review_id<\/code> column on <code>wp_reviso_comments<\/code> lets the all-comments admin filter by Review, so you can see exactly which round of feedback belongs to which engagement. Legacy review-mode and builder-direct comments stay accessible (stored with NULL review_id).<\/li>\n<li>Improvement: Polish across the builder overlay, admin quick-review panel, and front-end reviewer surfaces.<\/li>\n<li>DB: Migration 0.6.0 adds the <code>review_id<\/code> column + index. Safe upgrade \u2014 no existing rows are altered (NULL is the documented legacy\/builder-direct case).<\/li>\n<\/ul>\n\n<h4>0.19.0<\/h4>\n\n<ul>\n<li>New: <strong>Always-on bottom-left page nav for reviewers.<\/strong> Floating mini-panel lists every page in the review with status badges (To do \/ In review \/ Approved), highlights the current page, and links back to the dashboard. Collapsible \u2014 preference persists across navigation.<\/li>\n<li>New: <strong>Off-scope banner.<\/strong> When a reviewer wanders to a URL outside the review's bundled pages, a slim warning banner appears at the top of the page with a one-click \"Back to review dashboard\". Page stays interactive \u2014 they can hop back without losing context.<\/li>\n<li>New: <strong>Auto-bridge for in-scope navigation.<\/strong> When a reviewer clicks an internal link to another page in the review's scope, Reviso seamlessly mints a fresh per-page token and drops them into review mode \u2014 no more \"this page isn't being reviewed\" gotcha for pages that are.<\/li>\n<li>New: <strong>Lead reviewers can invite others from the dashboard.<\/strong> Lead role finally has a usable affordance \u2014 invite form sits below the page list, sends magic-link invitations to new reviewers with the Reviewer role (no privilege chain), all audit-logged.<\/li>\n<li>New: <strong>Email-restricted reviewers get a pre-filled identity gate.<\/strong> Email is shown read-only (it's the address they were invited at), and the name is suggested from the email's local-part (\"alice.smith\" \u2192 \"Alice Smith\"). One-keystroke confirm, no retyping their own email.<\/li>\n<li>New: <strong>Reviewer-side role enforcement.<\/strong> Approve button is gated to Approver + Lead roles (Viewer + Reviewer can see the site and post comments but can't sign off). Server-side re-checked so a crafted POST can't bypass.<\/li>\n<li>New: <strong>Approval propagates to page status.<\/strong> Marking a page approved now flips its status in the reviewer dashboard + bottom-left nav from \"In review\" to \"Approved\" \u2014 was previously only recorded in the Approvals tab.<\/li>\n<li>New: <strong>Comment form is draggable<\/strong> by its header bar, with viewport clamping. Resize the textarea and the form auto-nudges upward so the action buttons stay reachable.<\/li>\n<li>Fix: <strong>Comment-mode pin no longer \"disappears\"<\/strong> between click and form submit. The pulsing pending-pin now persists until the form closes or the comment saves, so reviewers see continuous visual feedback.<\/li>\n<li>Fix: <strong>Comment overlay no longer shows in the Bricks Builder editor canvas.<\/strong> Now restricted to Preview Mode only \u2014 switching out of preview hides the sidebar, FAB, comment form, pins, and popovers. Body-class mirror tracks <code>#bricks-toolbar.is-previewing<\/code>.<\/li>\n<li>Fix: <strong>Front-end review-mode cursor<\/strong> now matches the in-builder custom comment-bubble glyph instead of a plain crosshair. Same SVG, hardcoded brand colour (data-URL cursors can't reference CSS variables).<\/li>\n<li>Fix: <strong>Light\/dark theme switcher icon<\/strong> missing in the front-end sidebar \u2014 added the SVG-sizing rule that exists in builder.css but was missing from review.css.<\/li>\n<li>Fix: <strong>Device + Round filters<\/strong> in the reviewer sidebar were unclickable \u2014 root cause was popover z-index 99999 sitting behind the front-end sidebar's 2147483610. Bumped popover to 2147483630 (just below the lightbox slot).<\/li>\n<li>Fix: <strong>Bricks Templates dropped from reviewable post types.<\/strong> They're page parts, not standalone pages \u2014 <code>get_permalink()<\/code> redirected to home, which is what reviewers were seeing. Site-specific CPTs can be added back via the <code>reviso_reviewable_post_types<\/code> filter.<\/li>\n<li>Fix: <strong>Portal landing template<\/strong> now actually reads white-label settings \u2014 was previously reading non-existent option keys (<code>reviso_whitelabel_logo<\/code>, <code>reviso_whitelabel_accent<\/code>) so agency branding never reached the dashboard. Portal background mode (light\/dark\/custom) properly applied to CSS variables.<\/li>\n<li>Fix: <strong>Dashboard chrome cleanup.<\/strong> The bottom-left nav panel + off-scope banner no longer pile onto the <code>\/reviso-review\/&lt;slug&gt;\/<\/code> dashboard URL \u2014 the Reviews module owns that template and renders its own page list.<\/li>\n<\/ul>\n\n<h4>0.18.0<\/h4>\n\n<ul>\n<li>New: <strong>Admin-bar quick-review panel.<\/strong> Hover the Reviso icon on the front-end admin bar to generate a review for the current page (or, on Pro, the whole site) without leaving the page. The per-page link controls and the current-round indicator now live here too, replacing the old separate dropdowns.<\/li>\n<li>New: <strong>Create Review supports every reviewable post type + Bricks templates<\/strong> \u2014 not just pages and posts. The selector groups items by post type with collapsible sections, a live title filter, and a 500-per-type cap to stay fast on large sites.<\/li>\n<li>New: <strong>No-end-date option<\/strong> on the create-review wizard for engagements that don't have a fixed end date. Existing default (30 days) unchanged.<\/li>\n<li>New: <strong>Approvals is now its own top-level admin section<\/strong> (Reviso \u2192 Approvals), peer to Reviews \u2014 promoted out of Settings \u2192 Approvals because managed records belong next to Reviews. Old <code>?tab=approvals<\/code> deep-links auto-redirect.<\/li>\n<li>New: <strong>White-label light + dark logos with auto-pick.<\/strong> Upload both variants and Reviso chooses the one that contrasts against each surface (portal, builder splash, email header \u2014 all driven by a single <code>Reviso_Settings::pick_logo()<\/code> resolver). Added an optional email-header override + portal-background mode selector. Existing single-logo uploads keep working as a fallback.<\/li>\n<li>New: <strong>Portal landing page now respects white-label brand and background mode.<\/strong> Previously the reviewer landing read from non-existent option keys, so agency branding never reached it \u2014 fixed. Portal background can now be light (default), dark, or a custom hex; logo variant + companion colours adapt automatically.<\/li>\n<li>New: <strong>Email-restricted reviews no longer expose a meaningless public share URL<\/strong> on the review detail screen \u2014 they show invitee management instead.<\/li>\n<li>Improvement: Defaults on the Create Review wizard now lean toward the common case \u2014 Entire Website + Include future pages both checked for Pro users.<\/li>\n<li>Improvement: Viewer role label clarified \u2014 Viewers see the site only (the comment overlay never mounts for them), useful for read-only stakeholders.<\/li>\n<li>Fix: <strong>404 on review URLs after upgrading.<\/strong> Installs that picked up the Reviews module via an update (rather than activating fresh) had unflushed rewrite rules, so <code>\/reviso-review\/&lt;slug&gt;\/<\/code> landings and emailed activation links 404'd. Added a version-keyed one-shot flush on <code>init<\/code> so this self-heals.<\/li>\n<li>Removed: Legacy \"Review link expiry\" row in Settings \u2192 General \u2014 superseded by per-review expiry on the Reviews tab. The underlying option keeps applying to legacy per-page tokens for back-compat.<\/li>\n<\/ul>\n\n<h4>0.17.0<\/h4>\n\n<ul>\n<li>Architecture: split into a free plugin (this) plus an optional Pro addon. AI, white-label, integrations, and digests now live in the Pro plugin.<\/li>\n<li>Free continues to ship comments, pins, threads, basic notifications, telemetry (opt-in), and single-page Reviews with the free-tier limit (one active review at a time).<\/li>\n<\/ul>\n\n<h4>0.16.0<\/h4>\n\n<ul>\n<li>New: Reviews \u2014 bundle multiple pages under a single shareable link, with optional email-restricted access and magic-link auth (Pro).<\/li>\n<li>Free tier supports one active single-page review at a time.<\/li>\n<li>New: per-page checklist landing for reviewers; per-review expiry; audit log.<\/li>\n<\/ul>\n\n<h4>0.15.0<\/h4>\n\n<ul>\n<li>Opt-in anonymous product telemetry (off by default).<\/li>\n<li>Self-hosted update server endpoint sample for the Pro addon.<\/li>\n<\/ul>\n\n<h4>0.14.1<\/h4>\n\n<ul>\n<li>Screenshot capture rewrite \u2014 captures the area you actually clicked on.<\/li>\n<li>Review-link hardening \u2014 noindex headers, no-referrer policy, rate-limit on token validation.<\/li>\n<\/ul>\n\n<h4>0.14.0<\/h4>\n\n<ul>\n<li>Email notifications overhaul: per-event toggles, multi-recipient, From\/Reply-To, throttling, per-user opt-out, certificate attachment, SMTP nudge.<\/li>\n<\/ul>","raw_excerpt":"The collaboration layer Bricks Builder is missing \u2014 pinned comments, threads, client approvals, and shareable review links, native to the builder.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=319458"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/benelwoods"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319458"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319458"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319458"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319458"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319458"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}