Plugins / Desk9 Reviews for Google / Documentation

Desk9 Reviews for Google

Applies to v1.0.0, Free and Pro. Updated Sep 7, 2026. 15 min read

This manual covers the free plugin from wordpress.org and the Pro plugin from desk9design.com: getting a Google Places API key, connecting one or many locations, the block and the shortcode with every attribute, the seventeen layouts, design, synchronization, licensing and updates. Pro-only parts are marked.

1. Overview

Desk9 Reviews for Google shows the latest real Google reviews of a business on your WordPress site. It reads them from the Google Places API (New) with an API key. There is no OAuth flow and no Google verification. Reviews are cached on your server and rendered by a block or a shortcode in one of seventeen layouts.

The free edition handles one business listing. The Pro edition handles as many locations as you need and adds a combined rating and a Locations Overview layout. Pro replaces Free: it uses the same data, deactivates the free plugin on activation and keeps your key, business, design and cached reviews.

FreePro
Business listings1unlimited
Layouts1617 (adds Locations Overview)
Location per block or shortcodenolocation="<id>"
Combined rating across locationsnolocation="all"
Admin page for connectionsConnection & SyncConnection & Locations
Design, block, shortcode, syncidenticalidentical
Updateswordpress.orgdesk9design.com license (see section 11)

2. Requirements

WordPress6.5 or newer (tested up to 7.1)
PHP7.4 or newer
Google Clouda project with billing enabled and the “Places API (New)” enabled
API keyrestricted by IP address, not by HTTP referrer
Themenone; works with any theme, block or classic

Note: Google bills the Places API per request. Every connected location is one request per sync. The plugin never calls Google from the public front end, and a cached response is not fetched again.

3. Get a Google Places API key

The key belongs to a Google Cloud project. Server requests carry no HTTP referrer, so a referrer-restricted key rejects every request from your site. Restrict the key by your server’s IP address instead.

1

Open the Google Cloud Console. Create a project, or select an existing one. Billing must be enabled for that project.

2

Enable the Places API (New) for the project. The legacy “Places API” is not enough.

3

Go to APIs & Services > Credentials and create an API key.

4

Restrict the key. Under “Application restrictions” choose IP addresses and add your web server’s public IP. Under “API restrictions” limit the key to the Places API (New).

5

Copy the key. You paste it into WordPress in the next section. It is stored in your database and used only for server-side requests.

screenshot: Google Cloud Console, APIs & Services > Credentials, the new key with IP restriction (grayscale)

Fig. 1: The API key in the Google Cloud Console, restricted by IP address.

4. Connect your business or your locations

Open Desk9 Reviews > Connection & Locations (Free: Desk9 Reviews > Connection & Sync). The page shows four steps at the top: Prepare Google Cloud, Enter API key, Find your business, Synchronize reviews. Each step turns done as you go.

1

Paste the key into Google Places API key and click Save API key. One key serves all locations.

2

Under Find your business type the business name. Adding the city helps, for example “Cafe Sonnenrad, Berlin”. Click Search.

3

Pick the correct result and click Connect this business. The first full sync runs right away and the reviews appear in the table.

4

Pro: repeat the search for every further location with Add another location. The first location you connect is the default location.

Pro shows a Connected locations table with one row per listing: Location, Rating, Cached (number of cached reviews), Last sync, Status, the shortcode snippet with its location="<id>" attribute, and the actions Sync now and Remove. Below the table: Sync all locations now, Delete cached reviews (they are fetched again on the next sync) and Remove all locations (keeps the API key).

The Diagnostics panel at the bottom lists plugin, WordPress and PHP versions, whether a key is configured, the next quick and full sync, the last HTTP status from Google and the recent sync events. Check it first when something looks wrong.

screenshot: Desk9 Reviews > Connection & Locations with two connected locations in the table (grayscale)

Fig. 2: The Connection & Locations page with the locations table and the shortcode snippets.

Warning: removing a location deletes its cached reviews. Blocks and shortcodes that reference its id render nothing for visitors. Administrators see a hint instead.

5. Show reviews: the block

Add the Desk9 Reviews block (category Widgets) to any page, post or widget area. The editor preview uses the same render engine and stylesheet as the public page.

The block sidebar has these controls:

ControlWhat it does
Layoutone of the seventeen layouts, grouped as Rating, Reviews and Locations
LocationPro: Default location, each connected location by name, or All locations (combined). The dropdown appears once two or more locations could be chosen.
Reviews1 to 5, for grid, carousel, showcase, card deck, sidebar widget and ticker
Columns1 to 3, for grid and overview
DensityXS to XL, inline text rating only
Directionvertical or horizontal, badge only
Which reviewbest, newest, longest text or a fixed position, quote spotlight only
PlacementIn the page, or a pinned position, for bar, notification bar, badge, freshly-reviewed chip and sticky pill
Use global settingson by default. Switch it off to override summary, “Write a review” button, Maps link, avatars, dates, CTA card and text lines for this block only.
Contentleft, center or right alignment

Controls that do not apply to the chosen layout are hidden. A block without a location shows the default location, so a one-location site never needs the dropdown.

screenshot: block editor with the Desk9 Reviews block and the sidebar open, Location dropdown expanded (grayscale)

Fig. 3: The block sidebar with the Location dropdown (Pro).

6. Show reviews: the shortcode

The shortcode is [rdgfg_rating_display]. It shares the render engine with the block. Every attribute you leave out follows the global Display & Styling settings. Boolean attributes take true or false; an empty value means “use the global setting”.

AttributeValuesDefault
layoutinline, badge, bar, notice, strip, divider, chip, halo, grid, carousel, showcase, quote, deck, widget, ticker, pill, overviewgrid
locationa location id, all, or emptyempty = default location
reviews1 to 5 (grid, carousel, showcase, deck, widget, ticker)3
columns1 to 3 (grid, overview)global
sizexs, s, m, l, xl (inline)global
variantvertical, horizontal (badge)global
pickbest, newest, longest, 1 to 5 (quote)global
floatnone; top, bottom (bar, notice); top-left, top-center, top-right, bottom-left, bottom-center, bottom-right (badge, chip, pill)none, pill: bottom-right
dismissibletrue, false (pinned layouts get a close button)global
show_summarytrue, falseglobal
show_ctatrue, false (“Write a review” button)global
show_maps_linktrue, falseglobal
show_avatarstrue, falseglobal
show_datetrue, falseglobal
cta_cardtrue, false (a call-to-action card among the reviews)global
text_lines1 to 30 (visible lines of review text)global
alignleft, center, rightleft
imageattachment id (showcase, quote, halo)none
classextra CSS classes for the root elementnone

Examples you can paste:

[rdgfg_rating_display]
[rdgfg_rating_display layout="inline" size="s"]
[rdgfg_rating_display layout="bar" float="top" dismissible="true"]
[rdgfg_rating_display layout="grid" reviews="3" columns="3" location="berlin-mitte"]
[rdgfg_rating_display layout="quote" pick="newest" location="hamburg"]
[rdgfg_rating_display layout="badge" variant="horizontal" location="all"]
[rdgfg_rating_display layout="overview" columns="3"]
[rdgfg_rating_display layout="pill" float="bottom-left" show_cta="false"]

The first line shows the default location in the grid layout with the global settings. Line four shows one location by id; you find the id in the shortcode column of the locations table. Line six is the combined rating across every location. Line seven is the Pro-only Locations Overview.

Note: an unknown or removed location id renders nothing for visitors. Logged-in administrators see a hint in its place, so check the page while logged in if a block seems to be missing.

7. Layouts

Summary layouts show the average rating, stars and review count. Review layouts show individual comments. Every layout is available in the block and in the shortcode.

Summary layouts

inlineInline text rating. A single line such as “4.9 stars, 80 reviews” that flows inside a sentence, a heading or a button row. Five density steps from xs to xl.
badgeRating badge. A compact trust block, vertical or horizontal. Can be pinned to a corner.
barRating bar. A horizontal bar with an optional “Write a review” button. Can be pinned to the top or bottom edge.
noticeNotification bar. A slim single-line strip for headers. Can be pinned to the top or bottom edge.
stripTrust strip. Overlapping reviewer initials next to the rating.
dividerRating divider. The rating as a section separator between two rules.
chipFreshly reviewed. A chip that says how recently the last review came in. Can be pinned to a corner.
haloImage halo. The rating as a pill over one of your own images (attribute image).

Review layouts

gridReview grid. Responsive cards, one to three columns.
carouselReview carousel. Summary plus a slider of cards.
showcaseReview showcase. A split summary and slider for home pages.
quoteQuote spotlight. One review as a large quotation, picked by rule.
deckCard deck. Stacked cards you click through.
widgetSidebar widget. A narrow vertical list for sidebars and footers.
tickerReview ticker. Short quotes running as a band.
pillSticky trust pill. A corner badge that opens a panel with the reviews. Starts pinned bottom-right.

Pro layout

overviewLocations Overview. One summary card per connected location with stars, count and links, plus the combined rating. Pro only.

Grid, carousel, showcase, deck, ticker, pill and every pinned layout load the plugin’s small front-end script. The other layouts are CSS only. There is no jQuery, no external font, no cookie and no tracking in any layout.

8. Design & styling

Open Desk9 Reviews > Display & Styling. One global design applies to every block and shortcode. The layout is chosen per placement. Nothing is saved until you press Save design.

GroupOptions
Preview layoutpick any layout and switch between Desktop, Tablet and Mobile. Options that do not affect the previewed layout are hidden.
PresetInherit theme (no card), Clean (thin border), Soft (rounded, shadowed), Outline (strong border), Dark (always dark), Custom (your own colors)
Color schemeLight, Dark, or Follow the visitor’s system setting
Colorsstar, empty star, focus ring and accent dot always apply. Card, block, text, border, initials and button colors need the Custom preset.
Cardsborder width, corner radius, card padding, gap between cards, shadow and hover shadow (Custom preset), equal card height
Starsstar size, star spacing, show partial last star
Typographysizes for rating value, review text, author name and metadata, line height, weights. The font family always comes from your theme.
Authorsshow an initials circle, or reviewer images instead (see Privacy), image size, round images
Review contentsummary, “Write a review” button, Maps link, dates, CTA card, visible text lines

screenshot: Desk9 Reviews > Display & Styling with the live preview on the right and the Preset dropdown open (grayscale)

Fig. 4: The Display & Styling page with the live preview.

9. Synchronization & caching

Every connected location gets a quick sync every hour and a full sync once a day. Sync now in the locations table runs a full sync for one location; Sync all locations now runs it for every location. Each location syncs with its own request, so a failing location never stops the others.

What is cached: a snapshot of the business (name, rating, review count, Maps link) and up to five reviews (author display name, rating, text, dates). Google returns at most five reviews per business, sorted by relevance; the plugin sorts them by their original publish time, newest first.

A failed sync never deletes cached reviews. If no sync succeeds for 3 days, the cached reviews count as stale and are hidden from visitors until the next successful sync. Administrators see a notice in the block’s place. A business that simply has no reviews yet is not stale: it shows a short “no reviews yet” card with a link to write the first one.

Note: WordPress cron runs on site traffic. For reliable timing, point a real server cron at wp-cron.php every 15 minutes and add define( 'DISABLE_WP_CRON', true ); to wp-config.php.

Not available by design: owner replies, the star distribution, and “all reviews”. The Places API does not return them. They would need the OAuth-based Business Profile API, which this plugin deliberately does not use.

10. Multiple locations (Pro)

Each connected listing gets a short, stable id derived from its name, for example cafe-sonnenrad. If a name collides, the next one becomes cafe-sonnenrad-2. Ids never change, so your shortcodes keep working.

Default locationthe first location in the table. Blocks and shortcodes without a location show it.
One locationlocation="<id>" on the shortcode, or the Location dropdown in the block. Any of the sixteen layouts works per location.
All locationslocation="all". A weighted average rating and the summed review count across every location. Review layouts merge the reviews of all locations, newest first. No Maps link and no “Write a review” button, because there is no single listing.
Locations Overviewlayout="overview". One summary card per location with stars, count and links, the combined rating on top, one to three columns.
Removing a locationRemove in its row. Its cached reviews are deleted. Placements that used its id render nothing for visitors.

A typical setup: the combined badge in the footer of every page, the location’s own grid on each branch page, and the Locations Overview on the contact page.

[rdgfg_rating_display layout="badge" location="all"]
[rdgfg_rating_display layout="grid" location="cafe-sonnenrad" reviews="3"]
[rdgfg_rating_display layout="overview" columns="3"]

11. License & updates (desk9design.com edition)

The Pro plugin from desk9design.com receives updates inside WordPress through your license key. Without an active license the plugin keeps working with every feature. Only automatic updates in the WordPress dashboard are unavailable.

1

Copy the license key from your account on desk9design.com.

2

Open Desk9 Reviews > Tools and find License & updates.

3

Paste the key into License key and click Activate license. The status badge changes to Active, and Details shows “Valid until <date>. x of y sites in use.” or “Unlimited sites.”

screenshot: Desk9 Reviews > Tools, the License & updates panel with an Active status badge and the details line (grayscale)

Fig. 5: License & updates on the Tools page after activation.

StatusMeaning
Activethis site receives updates
Expiredthe subscription ran out. The plugin keeps working; updates stop until you renew.
Not activated on this sitea key is stored but not activated here. Click Re-activate.
No license keyno key stored on this site

Deactivate on this site frees the site slot and keeps the key stored, so you can re-activate later. Remove key deletes the key from this site; you can enter it again at any time.

With an active license, updates appear under Dashboard > Updates like any other plugin, with the same one-click update. Update checks against desk9design.com run once every 12 hours and when you activate or deactivate. A just-published release can take up to that long to appear; “Check again” on the Updates screen forces it immediately.

Note: an update check sends the product slug, your license key, this site’s address and the installed plugin version to desk9design.com. No visitor data is transmitted.

12. Upgrading from the free version

1

Download the Pro ZIP from your account.

2

With the free plugin still active, go to Plugins > Add New > Upload Plugin, upload the ZIP and activate it.

3

Pro deactivates the free plugin by itself. Your API key, connected business, design settings and cached reviews are migrated on the first load. The business becomes your default location.

4

Check Desk9 Reviews > Connection & Locations: the old business is in the table. Existing blocks and shortcodes keep working unchanged; without a location they show the default location, exactly as before.

5

Delete the free plugin under Plugins. Then connect further locations and activate your license.

Warning: do not run both plugins at the same time. While the free plugin is active, Pro stays dormant and shows a notice.

13. Staging and moving sites

Development environments never count against your site limit. Anything on localhost, a .test, .local or .dev domain, or a subdomain starting with staging. or dev. activates as a free slot: same key, full functionality.

Licenses are not locked to a domain forever. Open your account, deactivate the old site next to the subscription, then activate the key on the new site as usual. On the old site you can also click Deactivate on this site under Tools. This takes under a minute and never requires a support ticket. Site swaps do not change your renewal date.

When you move the whole database (migration plugin, hosting move), the locations, cached reviews and design move with it. Only the API key restriction needs attention: add the new server’s IP address to the key in the Google Cloud Console, then run Sync all locations now.

14. Privacy & external services

The plugin connects to one external service: Google’s Places API (New). It does so during setup, when you search for a business, and during synchronization on the server. The public front end never contacts Google.

By default no visitor data leaves your site. Reviewer images are off by default: if you enable Show reviewer images instead under Display & Styling, the images load from a Google domain and expose your visitors’ IP address to Google. The initials circle is served from your own site.

Stored data: your API key, one business snapshot and the cached reviews per location (author display name, rating, text, dates), sync state and logs, and on the desk9design.com edition the license data. The plugin registers suggested privacy-policy text under Settings > Privacy. Google’s Terms of Service and Privacy Policy apply to the review data.

No cookies, no analytics, no external fonts, no telemetry. The pinned layouts remember a dismissed bar or pill in the visitor’s browser storage only.

15. Troubleshooting & FAQ

The search finds nothing or returns an error

Check that the key belongs to a project with billing enabled, that the Places API (New) is enabled (not the legacy Places API), and that the key is restricted by IP address. A referrer-restricted key rejects server requests. The Diagnostics panel shows the last HTTP status from Google.

Why do I only see up to five reviews per location?

The Places API returns at most five of the most relevant recent reviews per business, without pagination. That is a Google limit, not a plugin setting.

Reviews are stale

WordPress cron only runs when the site has traffic. Set up a real server cron for wp-cron.php, or click Sync all locations now. If the last successful sync is older than 3 days, visitors see nothing until a sync succeeds.

The wrong location shows

A block or shortcode without a location shows the default location, which is the first row of the locations table. Set the location on the block, or add location=”<id>” to the shortcode. Compare the id with the shortcode column in the table.

A block shows nothing for visitors but a hint for me

The hint means the location id is unknown, the location was removed, or the cache is stale. Fix the id, connect the location again, or sync.

Update not showing

Under Tools the license must be Active on this site. Update checks run every 12 hours; “Check again” on the Updates screen forces one. If your host blocks outgoing requests, allow desk9design.com on port 443.

License says expired

The plugin keeps working with every feature. Renew the subscription from your account, then click Re-activate under Tools to receive updates again.

Can I hide bad reviews?

No. The plugin shows the reviews Google returns, unedited and unfiltered. The only editorial choice is which single review the Quote Spotlight puts on stage.

Does it slow my site down?

No. The public front end never contacts Google; everything renders from the local cache. CSS and script load only on pages that show reviews, and there are no external fonts or libraries.

Is it translation-ready?

Yes. The text domain is desk9-reviews-for-google-pro (free: desk9-reviews-for-google). Use Loco Translate, Poedit or WPML. The free plugin gets language packs from translate.wordpress.org.

16. Uninstall

Before uninstalling the Pro plugin, click Deactivate on this site under Desk9 Reviews > Tools so the site slot frees up for another site. Deactivating or deleting the plugin keeps your settings, key and cache in the database.

For a full cleanup, enable Delete all plugin data when the plugin is uninstalled under Tools, click Save, then delete the plugin. This removes settings, the API key, all locations, cached reviews, logs, license data and scheduled tasks. The switch is off by default.

Desk9 Reviews for Google is an independent plugin and is not affiliated with, endorsed by, or sponsored by Google LLC. Google and Google Business Profile are trademarks of Google LLC.

On this page

Docs are versioned with each release. Pro-only sections are marked in the navigation.