Desk9 Reviews for Google
v1.0.0
Desk9 Reviews for Google
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
2. Requirements
3. Get a Google Places API key
4. Connect your business or your locations
5. Show reviews: the block
6. Show reviews: the shortcode
7. Layouts
8. Design & styling
9. Synchronization & caching
10. Multiple locations (Pro)
11. License & updates (desk9design.com edition)
12. Upgrading from the free version
13. Staging and moving sites
14. Privacy & external services
15. Troubleshooting & FAQ
16. Uninstall
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.
| Free | Pro | |
|---|---|---|
| Business listings | 1 | unlimited |
| Layouts | 16 | 17 (adds Locations Overview) |
| Location per block or shortcode | no | location="<id>" |
| Combined rating across locations | no | location="all" |
| Admin page for connections | Connection & Sync | Connection & Locations |
| Design, block, shortcode, sync | identical | identical |
| Updates | wordpress.org | desk9design.com license (see section 11) |
2. Requirements
| WordPress | 6.5 or newer (tested up to 7.1) |
| PHP | 7.4 or newer |
| Google Cloud | a project with billing enabled and the “Places API (New)” enabled |
| API key | restricted by IP address, not by HTTP referrer |
| Theme | none; 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.
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.
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:
| Control | What it does |
|---|---|
| Layout | one of the seventeen layouts, grouped as Rating, Reviews and Locations |
| Location | Pro: Default location, each connected location by name, or All locations (combined). The dropdown appears once two or more locations could be chosen. |
| Reviews | 1 to 5, for grid, carousel, showcase, card deck, sidebar widget and ticker |
| Columns | 1 to 3, for grid and overview |
| Density | XS to XL, inline text rating only |
| Direction | vertical or horizontal, badge only |
| Which review | best, newest, longest text or a fixed position, quote spotlight only |
| Placement | In the page, or a pinned position, for bar, notification bar, badge, freshly-reviewed chip and sticky pill |
| Use global settings | on 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. |
| Content | left, 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.
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”.
| Attribute | Values | Default |
|---|---|---|
layout | inline, badge, bar, notice, strip, divider, chip, halo, grid, carousel, showcase, quote, deck, widget, ticker, pill, overview | grid |
location | a location id, all, or empty | empty = default location |
reviews | 1 to 5 (grid, carousel, showcase, deck, widget, ticker) | 3 |
columns | 1 to 3 (grid, overview) | global |
size | xs, s, m, l, xl (inline) | global |
variant | vertical, horizontal (badge) | global |
pick | best, newest, longest, 1 to 5 (quote) | global |
float | none; top, bottom (bar, notice); top-left, top-center, top-right, bottom-left, bottom-center, bottom-right (badge, chip, pill) | none, pill: bottom-right |
dismissible | true, false (pinned layouts get a close button) | global |
show_summary | true, false | global |
show_cta | true, false (“Write a review” button) | global |
show_maps_link | true, false | global |
show_avatars | true, false | global |
show_date | true, false | global |
cta_card | true, false (a call-to-action card among the reviews) | global |
text_lines | 1 to 30 (visible lines of review text) | global |
align | left, center, right | left |
image | attachment id (showcase, quote, halo) | none |
class | extra CSS classes for the root element | none |
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
inline | Inline 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. |
badge | Rating badge. A compact trust block, vertical or horizontal. Can be pinned to a corner. |
bar | Rating bar. A horizontal bar with an optional “Write a review” button. Can be pinned to the top or bottom edge. |
notice | Notification bar. A slim single-line strip for headers. Can be pinned to the top or bottom edge. |
strip | Trust strip. Overlapping reviewer initials next to the rating. |
divider | Rating divider. The rating as a section separator between two rules. |
chip | Freshly reviewed. A chip that says how recently the last review came in. Can be pinned to a corner. |
halo | Image halo. The rating as a pill over one of your own images (attribute image). |
Review layouts
grid | Review grid. Responsive cards, one to three columns. |
carousel | Review carousel. Summary plus a slider of cards. |
showcase | Review showcase. A split summary and slider for home pages. |
quote | Quote spotlight. One review as a large quotation, picked by rule. |
deck | Card deck. Stacked cards you click through. |
widget | Sidebar widget. A narrow vertical list for sidebars and footers. |
ticker | Review ticker. Short quotes running as a band. |
pill | Sticky trust pill. A corner badge that opens a panel with the reviews. Starts pinned bottom-right. |
Pro layout
overview | Locations 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.
| Group | Options |
|---|---|
| Preview layout | pick any layout and switch between Desktop, Tablet and Mobile. Options that do not affect the previewed layout are hidden. |
| Preset | Inherit theme (no card), Clean (thin border), Soft (rounded, shadowed), Outline (strong border), Dark (always dark), Custom (your own colors) |
| Color scheme | Light, Dark, or Follow the visitor’s system setting |
| Colors | star, empty star, focus ring and accent dot always apply. Card, block, text, border, initials and button colors need the Custom preset. |
| Cards | border width, corner radius, card padding, gap between cards, shadow and hover shadow (Custom preset), equal card height |
| Stars | star size, star spacing, show partial last star |
| Typography | sizes for rating value, review text, author name and metadata, line height, weights. The font family always comes from your theme. |
| Authors | show an initials circle, or reviewer images instead (see Privacy), image size, round images |
| Review content | summary, “Write a review” button, Maps link, dates, CTA card, visible text lines |
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 location | the first location in the table. Blocks and shortcodes without a location show it. |
| One location | location="<id>" on the shortcode, or the Location dropdown in the block. Any of the sixteen layouts works per location. |
| All locations | location="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 Overview | layout="overview". One summary card per location with stars, count and links, the combined rating on top, one to three columns. |
| Removing a location | Remove 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.”
| Status | Meaning |
|---|---|
| Active | this site receives updates |
| Expired | the subscription ran out. The plugin keeps working; updates stop until you renew. |
| Not activated on this site | a key is stored but not activated here. Click Re-activate. |
| No license key | no 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
Why do I only see up to five reviews per location?
Reviews are stale
The wrong location shows
A block shows nothing for visitors but a hint for me
Update not showing
License says expired
Can I hide bad reviews?
Does it slow my site down?
Is it translation-ready?
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.