WP Manifestindependent plugin directory
manifest / utilities / gbp-store-locator

GBP Store Locator

Complete store locator WordPress plugin with Google Business Profile synchronization (Places API). Interactive map, search by address, radius, geolocation, filters, individual store pages, Google reviews, real-time open/closed status. Translated into multiple languages ​.

by Alexandre ALAIMO · github.com/alexandrealaimo/gbp-store-locator · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/alexandrealaimo/gbp-store-locator/archive/refs/heads/main.zip

Readme

=== GBP Store Locator === Contributors: alexandrealaimo Tags: store locator, google business profile, places api, store map, locations Requires at least: 6.0 Tested up to: 7.0 Requires PHP: 8.0 Stable tag: 1.0.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html

Interactive store locator with an address/radius search and automatic synchronization from Google Business Profile (Places API).

== Description ==

GBP Store Locator turns a list of physical locations into a searchable, interactive map. Each location is a "store" you create in WordPress; its address, opening hours, phone, website, rating and reviews are filled in automatically by synchronizing with its Google Business Profile listing through the Google Places API.

= Features =

  • Interactive map with marker clustering, address/city search, "use my location" geolocation, radius and service filters, and an "open now" filter.
  • Automatic synchronization from Google Business Profile (Places API): address, GPS coordinates, opening hours, phone, website, Google rating and latest reviews.
  • Individual store pages with three built-in layouts (default, compact, full width), Schema.org LocalBusiness structured data, and a live open/closed status.
  • Shortcodes: [store_locator] (map + search), [store_card id="42"] (compact card) and [store_page id="42"] (full store page) — usable in any page or post.
  • Front-end manager dashboard ([store_manager_dashboard]) so store managers can re-sync their own locations.
  • Configurable entity wording (store, agency, restaurant, hotel…), custom map markers (color, image, size), default map center, radius values and search defaults.
  • Daily background re-synchronization via WP-Cron, batched to avoid PHP timeouts on large catalogs.
  • Fully translatable. Source language French; English, Spanish, German and Italian translations included.

= Configuration =

After activation you are taken to a short onboarding screen. You will need a Google Maps Platform API key with the Places API and Maps JavaScript API enabled, plus an optional Map ID for advanced markers. Add your store's Google Place ID to each store and click "Synchronize".

== External services ==

This plugin connects to Google Maps Platform (provided by Google LLC) to display maps and to import business information. It is required for the map and the synchronization features to work, and it relies on API keys that you provide.

The following Google services are used:

  • Places API (server side). When you validate a Place ID or synchronize a store from the admin area, your site sends that Place ID and your server API key to the Places API to retrieve the business name, address, GPS coordinates, opening hours, phone number, website, rating and reviews. Data is sent only when an administrator (or an authorized store manager) triggers a validation or a synchronization, and during the scheduled daily re-sync.
  • Maps JavaScript API (visitor browser). On any page that displays the map or a store page, the visitor's browser loads the Google Maps JavaScript library from Google using your browser API key. When a visitor searches for an address or uses geolocation, the corresponding query/coordinates are sent to Google to render the map and place suggestions.
  • Places Photo endpoint. Store photos are displayed using Google's photo URLs, which the visitor's browser requests directly from Google.

No data is sent to Google until you configure an API key and either trigger a synchronization or load a page containing the map. Your API keys are stored in your WordPress database; the server key is never exposed in the page HTML.

Use of these services is subject to Google's terms and privacy policy:

This plugin is not affiliated with, endorsed by, or sponsored by Google LLC. "Google", "Google Maps" and "Google Business Profile" are trademarks of Google LLC.

== Installation ==

  1. Upload the gbp-store-locator folder to /wp-content/plugins/, or install the plugin through the Plugins screen in WordPress.
  2. Activate the plugin through the "Plugins" screen.
  3. Follow the welcome screen, or go to GBP Store → Settings and enter your Google Maps Platform API keys (server and browser) and your Map ID.
  4. Create a store under GBP Store → Add a store, paste its Google Place ID, then click "Synchronize".
  5. Add the [store_locator] shortcode to any page to display the map and search.

== Frequently Asked Questions ==

= Do I need a Google API key? =

Yes. The map and the synchronization rely on Google Maps Platform. You need an API key with the Places API and Maps JavaScript API enabled. Restrict the server key by IP address and the browser key by HTTP referrer for security.

= Is any data sent to a third party? =

Yes — to Google Maps Platform, as described in the "External services" section above. Nothing is sent until you configure a key and use the map or the synchronization.

= Can I change the wording "store"? =

Yes. Under GBP Store → Style you can set the singular and plural entity name (for example agency/agencies or restaurant/restaurants).

= Can I customize the store page layout? =

Each store offers three layouts (default, compact, full width). Templates and partials can be overridden from your theme by creating files under a wsl/ folder.

= Is the plugin translated? =

The source language is French, and English, Spanish, German and Italian translations are bundled. The plugin loads the catalog matching your site language automatically.

== Screenshots ==

  1. The store locator map with search, filters and the results list.
  2. An individual store page with opening hours, map and Google reviews.
  3. The store editor with the Google Business Profile synchronization box.
  4. The Settings screen (API keys, default map center, radius values).
  5. The onboarding welcome screen shown after activation.

== Changelog ==

= 1.0.0 =

  • Initial public release.
  • Interactive store locator with address/radius search, geolocation, service and "open now" filters, and marker clustering.
  • Automatic synchronization from Google Business Profile (Places API): address, coordinates, opening hours, contact details, rating and reviews.
  • Individual store pages with three layouts, Schema.org structured data and live open/closed status.
  • Shortcodes [store_locator], [store_card], [store_page] and [store_manager_dashboard].
  • Configurable entity wording, custom markers, default map settings and uninstall behavior.
  • Onboarding welcome screen after activation.
  • French source with English, Spanish, German and Italian translations.

== Upgrade Notice ==

= 1.0.0 = Initial public release.

Read the full README on GitHub →