Skip to content

Releases: CHIROBASIX-LLC/cbx-plugin-google-reviews

v1.7.0 — [cbx_google_reviews] inline shortcode

Choose a tag to compare

@chirobasix chirobasix released this 03 Aug 16:31

Adds a shortcode so Google reviews can be rendered in page content, not only in the floating slide-out panel.

[cbx_google_reviews count="12" columns="3" header="What Our Patients Say"]

  • count — how many reviews (default 12, 0 = all cached)
  • columns — desktop grid columns 1–4 (default 3), collapsing to 2 on tablet and 1 on mobile
  • header — optional heading above the grid

Reuses the existing card markup and the v1.6.0 <symbol> sprite. Scoped to .cbxr-inline because the panel's card CSS is scoped to #cbxr-widget (which is position: fixed). Inherits the theme's fonts and colours — only layout is specified. The floating badge is unaffected; both can appear on the same page.

Built for testimonials pages.

v1.6.1 — optional cap on rendered reviews

Choose a tag to compare

@chirobasix chirobasix released this 01 Aug 12:43

Adds cbxr_max_display option / cbxr_max_display_reviews filter to cap how many reviews render into the slide-out panel and its JSON-LD. Default 0 = all (unchanged fleet-wide). Set per-site where thousands of words of identical review boilerplate on every page is undesirable.

v1.6.0 — dedupe repeated review icons into a <symbol> sprite

Choose a tag to compare

@chirobasix chirobasix released this 28 Jul 21:36

Cuts the reviews widget's contribution to every page by deduplicating its repeated icons.

The widget renders every cached review into the closed slide-out panel. On a practice with 82 reviews that meant ~840 star SVGs and 82 Google icons per page — roughly 143KB of duplicated path data in every single response. The path data is now emitted once as <symbol>s and referenced with <use>.

Measured on arsenaultchiro.com/about/: 508KB → 427KB (−81KB, −15%). Inline SVG 170KB → 90KB.

Rendering is unchanged — verified live: the badge's 4 gold stars + half star, the summary row (4.8, 96), the 5-star row on each review card, and the multicolour Google icon on every "Posted on Google" line all render identically, with no layout shift and no console errors.

Also fixes a latent defect: the half-star gradient was emitted as cbxr-half-1..5 once per review card, so the page carried dozens of duplicate element ids and every half star already resolved to the first definition. There is now a single shared gradient id.

Implementation notes for future edits:

  • The sprite is printed outside #cbxr-widget, so the #cbxr-widget ... svg sizing rules (all !important) cannot match it.
  • It is hidden by being zero-sized and absolutely positioned rather than display:none, which keeps <use> resolution reliable.
  • Full and empty stars share one geometry symbol and take their colour by inheriting fill from the referencing <svg>, so that symbol's path deliberately carries no fill.

v1.5.6 — updater hardening (editor-safe)

Choose a tag to compare

@chirobasix chirobasix released this 18 Jul 01:54

Same updater hardening as cbx-site-fixes v1.4.1: failure backoff transient (15 min), 3s HTTP timeout (was 10s), no network I/O on latency-sensitive requests (admin-ajax / post.php?action=elementor). No functional changes to the reviews widget.

v1.5.5 — never emit a rating LocalBusiness without an address

Choose a tag to compare

@chirobasix chirobasix released this 15 Jul 21:11

Fixes SEMRush 'A value for the address field is required'. The reviews widget only added address when cbxr_place_address was populated; during a reviews-cron refresh gap it could emit a LocalBusiness + rating with no address (invalid). Now skips the schema when no valid address is available (a site can still supply one via the cbxr_schema filter).

v1.5.4 — reviews panel survives WP Rocket RUCSS / Delay JS

Choose a tag to compare

@chirobasix chirobasix released this 26 Jun 21:22

Fixes the Google Reviews panel rendering un-hidden, stacked below the footer, on sites using WP Rocket "Remove Unused CSS" (Optimize CSS Delivery).

The slide-out panel was positioned and hidden entirely via the stylesheet (position:fixed + an off-canvas transform). WP Rocket's Remove Unused CSS strips the external stylesheet and empties inline <style> blocks — including the v1.5.3 critical CSS — because the hidden-panel rules look "unused". With its CSS gone, the panel fell into normal document flow below the footer.

What changed

  • Badge, panel and overlay are positioned/hidden via inline style attributes, which survive every CSS optimizer (RUCSS, async/critical CSS, minify). The panel can no longer dump below the footer.
  • Open/close is driven through inline styles in JavaScript, so it works even when the .cbxr-open stylesheet rule is stripped.
  • WP Rocket filters keep the widget fully styled and functional under Optimize CSS Delivery + Delay JavaScript: the stylesheet is excluded from Remove Unused CSS, the script is excluded from Delay JS, and the widget selectors are safelisted as a fallback.

Verified on a live RUCSS site. Auto-updates fleet-wide via the built-in updater.

v1.5.3 — valid LocalBusiness schema + reviews panel FOUC fix

Choose a tag to compare

@chirobasix chirobasix released this 25 Jun 16:02

Fixes

  • Structured data: the reviews-widget LocalBusiness JSON-LD now includes address (PostalAddress), telephone, geo, image, priceRange and the site URL. Google flags a LocalBusiness that carries ratings/reviews but has no address as invalid — this clears that "invalid structured data" error.
  • Self-healing NAP: the Place Details refresh now fetches and persists the business address, phone and geo (cbxr_place_address / _phone / _geo). Existing sites populate automatically on their next reviews refresh — no manual step.
  • Panel FOUC: inline critical CSS keeps the slide-out panel positioned/hidden at first paint, so it can no longer flash un-hidden below the footer when CSS is deferred (WP Rocket Remove Unused CSS / async).
  • Added a cbxr_schema filter for customizing the emitted schema.

Auto-installs on all sites via the built-in GitHub updater.

v1.5.2 — Secure API-key storage

Choose a tag to compare

@chirobasix chirobasix released this 23 Jun 16:52
  • Security: the Google + Outscraper API key fields no longer render their saved value into the settings page HTML (page-source leak). A saved key now shows only a masked hint; leave blank to keep, type to replace.
  • Security: optional wp-config.php constants CBXR_GOOGLE_API_KEY / CBXR_OUTSCRAPER_KEY keep keys out of the database entirely.
  • Keys remain server-side only (Google Places + Outscraper fetches); no frontend/REST exposure.

v1.5.1

Choose a tag to compare

@chirobasix chirobasix released this 22 Jun 18:43

Maintenance: repoint the GitHub self-updater to CHIROBASIX-LLC/cbx-plugin-google-reviews. No functional or visual changes — updater pointer + version only.

v1.5.0

Choose a tag to compare

@chirobasix chirobasix released this 12 Apr 01:47

Changes

  • Default accent color changed from #e8a87c to #ffffff
  • Accent color input switched from color picker to HEX text field
  • Floating badge star icons increased from 18px to 22px
  • Added JSON-LD structured data (LocalBusiness + AggregateRating + individual Review objects)