Sanvador Store, Dealer & Service Locator

Description

Sanvador Store Locator lets visitors find your nearest dealer, service point, store, branch, clinic, office, restaurant or school in seconds – on phones and on desktop.

A short setup wizard asks two questions:

  1. What do you list? Pick a sector template (technical services, dealer network, stores, branches, health, real estate, restaurants, schools or your own). Names (“12 dealers found”), categories and extra fields are prepared for you.
  2. Where? The whole world, one country or one city. Regions are ready for 200 countries (81 Turkish provinces, 50 US states, 16 German states …); in city mode visitors filter by district.

Features

  • Works worldwide: country region (state/province) city/district, localized country names
  • Categories with their own colours (filter chips on the page, coloured pins on the map)
  • Opening hours per weekday (with lunch breaks and after-midnight closing): “Open now · Closes 18:00” badge on every card and an “Open now” filter
  • Search near an address or postcode, or “Nearest to me” – with a distance filter (5–250 km or miles) and a radius circle on the map
  • Custom fields: website, specialties, photo … (text, long text, link, email, phone, image)
  • Pin map with OpenStreetMap (no API key, Leaflet bundled), nearby pins grouped into clusters – or the clickable Turkey province map
  • Map locations found automatically from addresses – no need to type coordinates
  • Instant keyword search that tolerates accents and punctuation
  • Block editor block (“Sanvador Store Locator”) with country, category, region, map and colour options
  • Privacy: optional “Show map” consent step (GDPR / KVKK) – nothing is loaded from outside servers before the visitor agrees
  • Works with caching and optimization plugins (WP Rocket, LiteSpeed Cache, SiteGround Optimizer, Autoptimize, W3 Total Cache …): the locator is kept out of “delay JS” and page caches are cleared when records change
  • Big call / WhatsApp / directions buttons; WhatsApp links are built in international format from local numbers
  • CSV import & export that works with Excel files (Turkish/English/… headers, categories and custom fields, test run before saving)
  • Settings page with tabs: names, categories, custom fields, features on/off, map
  • Shortcode: [sanvador_store_locator] – options: country=”DE”, region=”Bayern”, category=”showroom”, per_page=”12″, color=”#0a6cbd”, map=”auto|pins|region|none”

More information, documentation and a live demo: plugins.sanvador.com

Privacy

This plugin uses these outside services:

  • OpenStreetMap tile servers (or the tile server you configure) – to draw the pin map in the visitor’s browser. Tile usage policy
  • OpenStreetMap Nominatim – from your server, to find coordinates for addresses you save and for addresses visitors search. Nominatim usage policy, OSMF privacy policy

Credits

Pin map: Leaflet 1.9.4 (BSD-2-Clause, https://leafletjs.com, source: https://github.com/Leaflet/Leaflet) and map data © OpenStreetMap contributors. See assets/vendor/leaflet/LICENSE.txt.

Pin clustering: Leaflet.markercluster 1.5.3 (MIT, source: https://github.com/Leaflet/Leaflet.markercluster). See assets/vendor/markercluster/MIT-LICENCE.txt.

Region lists: ISO 3166-2 subdivisions from the iso-codes project (LGPL-2.1), see assets/data/regions/README.txt.

Turkey province map data is based on “svg-turkiye-haritasi” by Doğukan Güven Nomak (https://github.com/dnomak/svg-turkiye-haritasi), released under the MIT License. See assets/data/LICENSE-turkey-map.txt.

Screenshots

Blocks

This plugin provides 1 block.

  • Sanvador Store Locator Searchable list and map of your locations (dealers, branches, service points…).

Installation

  1. Upload the sanvador-store-locator folder to /wp-content/plugins/.
  2. Activate the plugin.
  3. The setup wizard opens – choose your sector and area (you can run it again from the menu).
  4. Add the “Sanvador Store Locator” block (or the [sanvador_store_locator] shortcode) to any page.

FAQ

How do I enter opening hours in the CSV file?

Use one “Opening hours” column, for example Mo-Fr 09:00-18:00; Sa 10:00-14:00; Su off, Mo-Fr 08:30-12:30,13:30-17:30 or 24/7. Turkish, German, French and Spanish day names work too (Pzt-Cum 09:00-18:00; Cmt 09:00-13:00; Paz kapalı). Rows with hours that cannot be read are still imported and listed as warnings.

Which time zone is used for “Open now”?

The time zone of each record’s country (for countries with one time zone), otherwise the site’s time zone (Settings General).

Does the plugin send visitor data anywhere?

Map tiles are loaded from the tile server set under Map settings (OpenStreetMap by default) – turn on the consent option to load them only after the visitor agrees. Address searches go to your own site, which asks OpenStreetMap Nominatim and caches the answer; the visitor’s IP address is not passed on. Each visitor can make 30 new address searches per 10 minutes (filter: sanvador_sl_geocode_limit).

Can I change the distance choices?

Yes, with the sanvador_sl_radius_options filter (array of numbers in your distance unit).

I use an earlier version under another name (“Service Finder” or a 0.7–0.8 build). How do I upgrade?

  1. Do not delete the old plugin yet – deleting it first removes its data.
  2. Install and activate Sanvador Store Locator. The old copy is switched off, your locations, settings, categories and fields are moved over automatically, and pages with the old shortcode or block keep working.
  3. Delete the old plugin.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Sanvador Store, Dealer & Service Locator” is open source software. The following people have contributed to this plugin.

Contributors

“Sanvador Store, Dealer & Service Locator” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Sanvador Store, Dealer & Service Locator” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

0.9.4

  • New translations: German, Spanish, French, Italian, Portuguese (Brazil), Dutch, Polish, Russian, Japanese and Arabic.
  • Right-to-left support: the locator and its admin screens now lay out correctly on Arabic, Hebrew and Persian sites; phone numbers always read left to right.
  • The plugin author is now shown as Sanvador, and the author link points to plugins.sanvador.com.

0.9.3

  • Sites that already have locations (set up by hand, or updated from Locatory or Service Finder) no longer see the “Start setup” reminder.
  • “Skip” in the setup wizard no longer replaces your own record names on a site that already has categories or fields.

0.9.2

  • “When the page opens” has a new default, Automatic: with more than 20 locations visitors first choose an area (or use “Nearest to me”), with fewer the list is shown at once. Sites that already saved this setting keep their choice.
  • The block has its own “When the page opens” option, so one page can list everything while another asks first (the shortcode already had start="…"; it now also accepts auto).
  • Developers: filter sanvador_sl_auto_prompt_over changes the 20-location limit.

0.9.1

  • “Go Pro” links and the plugin website link now open the new product page (plugins.sanvador.com).

0.9.0

  • New name and address: Sanvador Store, Dealer & Service Locator (folder and text domain sanvador-store-locator, shortcode [sanvador_store_locator], block “Sanvador Store Locator”).
  • Sites with an earlier version: activating this plugin switches the old copy off and moves locations, settings, categories and fields over automatically. Pages with the old shortcode or block and links shared earlier keep working.
  • Shared links now use ?sl=12.
  • Developers: options, hooks, the REST route (sanvador-store-locator/v1), DOM events (sanvador-store-locator:results, :action, :empty) and JavaScript objects use the new prefix.

0.8.8

  • Developers: new filter sanvador_sl_share_template adds text before and after a shared location ({name} and {place} are filled in).

0.8.7

  • New setting “When the page opens”: list all locations (as before) or ask the visitor to choose an area first – the map stays, and a short prompt with “Choose region” and “Nearest to me” replaces the cards until the visitor chooses, searches or taps the map. Shortcode: start=”prompt” or start=”all”.

0.8.6

  • New Share button on location cards: send a location’s name, address, phone, contact person, directions and a link by WhatsApp, e-mail or text message. Phones and tablets open the system share menu; computers show WhatsApp, e-mail and “Copy details”. Can be turned off under Settings.
  • After an update, page caches (LiteSpeed, WP Rocket, W3 Total Cache …, including separate mobile caches) are cleared once so visitors get the new version.
  • Shared links open the locator with only that location listed and the map zoomed to it.

0.8.5

  • Location cards: all text is left-aligned even when the theme centres paragraphs (address line too); the contact person line has a small person icon.

0.8.4

  • Admin scripts moved into an enqueued file (no inline script or style tags).
  • Script handles and the setup wizard’s JavaScript object are now prefixed.
  • The setup reminder only appears on Sanvador Store Locator’s own screens.
  • Upgrading from Service Finder: migrations also run for very old installs without a version number.
  • The area centre is looked up only after you click “Find locations”, not when the list opens.
  • Fixed a PHP 8.1 deprecation notice on the edit screen.

0.8.3

  • Pin map: clicking a cluster (e.g. “2” on a city) or a single pin now lists those locations below the map, with a “Show all” link to return to the full list.

0.8.2

  • On desktop computers the Call button now shows the phone number itself; clicking it copies the number. Phones and tablets keep the tap-to-call button.

0.8.1

  • “Go Pro” page under the Sanvador Store Locator menu introducing Sanvador Store Locator Pro (hidden when Pro is active), with one dismissible card on the locations screen.

0.8.0

  • Cards and map popups link to a location’s own page when one exists (e.g. with Sanvador Store Locator Pro).
  • Developer events for add-ons: sanvador-store-locator:results, sanvador-store-locator:action and sanvador-store-locator:empty, plus the sanvador_sl_location_data filter.

0.7.0

  • New name: Sanvador Store Locator (previously “Service Finder”). Data from earlier versions is migrated automatically; [service_finder] still works on upgraded sites.
  • Opening hours: weekly editor (two periods per day, 24 hours, after-midnight closing), “Open now / Closes soon / Closed · Opens Mon 09:00” badge, weekly table on the cards and an “Open now” filter. CSV column with day names in several languages.
  • Location search: type an address, district or postcode (or use “Nearest to me”), then limit results by distance. A radius circle is drawn on the map. When a keyword finds nothing, the locator offers to search it as a place.
  • Pin clustering for maps with many locations (Leaflet.markercluster).
  • Block editor block with sidebar options.
  • Optional consent step before loading the pin map (GDPR / KVKK).
  • Compatibility with caching/optimization plugins; page caches are cleared when records change.
  • The old free-text “Working hours” field of the sector templates is converted to the new opening hours automatically.
  • Opening hours can have their own time zone per location (for countries with several time zones).
  • Internal: unique “sanvador_sl_” prefix for options and the database table (migrated automatically), safer database queries, complete uninstall. Requires WordPress 6.2.

0.6.2

  • Search: if nothing matches inside the selected region/category, matches from all areas are shown (e.g. “Adana” typed while “İstanbul” is selected).
  • Search reacts to more events (keyup, paste, IME, clear button) – works with phone keyboards and themes that swallow “input” events; Enter shows the results.
  • Province map highlights the provinces that contain search results.

0.6.1

  • Map locations are found automatically from the address (OpenStreetMap Nominatim, 1 request/second, cached): on save, and with the new “Find locations” button (progress bar) for imported records.
  • The pin map is now shown in every country; when no record has coordinates yet it is centred on the chosen country or city.
  • New setting: Map Locations (automatic lookup on/off).

0.6.0

  • Multi-sector: setup wizard with 9 sector templates, editable record names (singular / plural / after a number).
  • Scope: whole world, one country (regions ready for 200 countries) or one city (filter by district, city found on the map).
  • Categories with colours: filter chips and coloured pins; created automatically from CSV.
  • Custom fields (text, long text, link, email, phone, image) on the form, cards, map popups and in CSV.
  • Settings split into tabs; record form adapts to the chosen scope.
  • Existing installs are migrated as “technical service network” without showing the wizard.

0.5.0

  • Worldwide: country and region fields, localized country names, international phone/WhatsApp formatting, km or miles.
  • New pin map (Leaflet + OpenStreetMap, bundled locally, loaded only when shown). Click a card’s location to open its pin.
  • New Settings page: features on/off, colour, cards per page, region label, map type/height/tiles, directions app, WhatsApp text.
  • CSV: country column (name or code), region/state column, worldwide header names; legacy encodings per country.
  • Existing Turkish data is migrated automatically.

0.4.2

  • Search ignores punctuation (“mas tek” finds “Mas-Tek”).

0.4.1

  • Lighter, smaller card titles (reads better with ALL CAPS company names).

0.4.0

  • Interactive Turkey map on wide screens: provinces with services are highlighted, hover shows the service count, click filters the list (click again to clear). Keyboard accessible. Map data loads only when the map is shown (never on phones).
  • New shortcode option: map=”auto|yes|no”.

0.3.0

  • CSV import & export (Sanvador Store Locator Import / Export): Excel-friendly (semicolon or comma, UTF-8 or Windows-1254), Turkish or English headers, province by name or plate code, test run before saving, update/skip/replace modes, sample template.

0.2.0

  • Front end: [service_finder] shortcode with province menu, instant search (Turkish-character tolerant), “Nearest to me”, mobile-first service cards (call, WhatsApp, directions), “Show more” paging.
  • Turkish (tr_TR) translation.

0.1.0

  • Initial skeleton: services table, admin list and add/edit screen.