{"id":18468,"date":"2012-06-05T20:45:06","date_gmt":"2012-06-05T20:45:06","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/pazzeys-store-locator\/"},"modified":"2026-01-31T21:25:17","modified_gmt":"2026-01-31T21:25:17","slug":"pazzeys-store-locator","status":"publish","type":"plugin","link":"https:\/\/tuk.wordpress.org\/plugins\/pazzeys-store-locator\/","author":8133646,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.1.0","stable_tag":"2.1.0","tested":"6.7.5","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Pazzey's Store Locator","header_author":"Cris Puno","header_description":"","assets_banners_color":"c3ad7c","last_updated":"2026-01-31 21:25:17","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.crispuno.ca\/?page_id=306","header_plugin_uri":"https:\/\/www.crispuno.ca\/?p=250","header_author_uri":"https:\/\/crispuno.ca","rating":3.3,"author_block_rating":0,"active_installs":10,"downloads":5287,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1":{"tag":"1.1","author":"crispuno","date":"2012-06-18 18:14:59"},"1.2":{"tag":"1.2","author":"crispuno","date":"2012-09-04 03:07:59"},"2.0.0":{"tag":"2.0.0","author":"crispuno","date":"2026-01-19 04:34:38"},"2.1.0":{"tag":"2.1.0","author":"crispuno","date":"2026-01-31 21:25:17"}},"upgrade_notice":{"2.0.0":"<p>Major update for WordPress 6.x. Now requires a Google Maps API key. Please configure in Stores &gt; Settings after updating.<\/p>","1.2":"<p>Fixed issue with HTML tags showing in the link for Google Maps\nFixed issue with plugin not appearing for non-root WP installations<\/p>"},"ratings":{"1":0,"2":"1","3":"2","4":0,"5":"1"},"assets_icons":[],"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":554041,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1","1.2","2.0.0","2.1.0"],"block_files":[],"assets_screenshots":{"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3451174,"resolution":"2","location":"plugin"},"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3451174,"resolution":"1","location":"plugin"},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3451174,"resolution":"3","location":"plugin"}},"screenshots":{"1":"Store Locator custom post type input page.","2":"Shortcode usage.","3":"Embedded Store Locator."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[128610,1571,128611,351,6102],"plugin_category":[],"plugin_contributors":[84058],"plugin_business_model":[],"class_list":["post-18468","plugin","type-plugin","status-publish","hentry","plugin_tags-embed-google-maps","plugin_tags-google-maps","plugin_tags-google-maps-store-locator","plugin_tags-locations","plugin_tags-store-locator","plugin_contributors-crispuno","plugin_committers-crispuno"],"banners":{"banner":"https:\/\/ps.w.org\/pazzeys-store-locator\/assets\/banner-772x250.jpg?rev=554041","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/pazzeys-store-locator_c3ad7c.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/pazzeys-store-locator\/trunk\/screenshot-1.jpg?rev=3451174","caption":"Store Locator custom post type input page."},{"src":"https:\/\/ps.w.org\/pazzeys-store-locator\/trunk\/screenshot-2.jpg?rev=3451174","caption":"Shortcode usage."},{"src":"https:\/\/ps.w.org\/pazzeys-store-locator\/trunk\/screenshot-3.jpg?rev=3451174","caption":"Embedded Store Locator."}],"raw_content":"<!--section=description-->\n<p>This is a Store Locator plugin for WordPress that incorporates Google Maps.<\/p>\n\n<p>What it can do:<\/p>\n\n<ul>\n<li>Adds a custom post type called Stores for input of store locations<\/li>\n<li>Automatically retrieves Google Maps coordinates of location<\/li>\n<li>Bulk import stores from CSV files<\/li>\n<li>Lets you add a store locator in any page\/post using a shortcode<\/li>\n<li>Search by entering city and state\/province, zip\/postal code or part of an address<\/li>\n<li>Shows results on right ordered by distance<\/li>\n<li>REST API support for headless WordPress setups<\/li>\n<li>Modern, responsive design<\/li>\n<li>Secure AJAX-based searches with nonce verification<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Download and unzip the file<\/li>\n<li>Upload the pazzeys-store-locator folder to your WordPress plugins folder<\/li>\n<li>Log in to WordPress and go to Plugins<\/li>\n<li>Click on the Activate link for Pazzey's Store Locator<\/li>\n<li>Go to Stores &gt; Settings and enter your Google Maps API key<\/li>\n<li>Start adding store locations!<\/li>\n<\/ol>\n\n<h4>Google Maps API Key<\/h4>\n\n<p>This plugin requires a Google Maps API key to function. You can obtain one from the <a href=\"https:\/\/console.cloud.google.com\/google\/maps-apis\">Google Cloud Console<\/a>.<\/p>\n\n<p>You need to enable the following APIs:\n* Maps JavaScript API\n* Geocoding API<\/p>\n\n<p>You can configure the API key in two ways:\n1. Through the Settings page (Stores &gt; Settings)\n2. By adding this to your wp-config.php: <code>define( 'PAZZEY_GOOGLE_MAPS_API_KEY', 'your-api-key-here' );<\/code><\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20embed%20the%20store%20locator%3F\"><h3>How do I embed the Store Locator?<\/h3><\/dt>\n<dd><p>Use the new post type 'Stores' to enter the information about your store locations. Once all Store Locations are entered, type in [storelocator] in your Post or Page to embed it.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20size%3F\"><h3>Can I customize the size?<\/h3><\/dt>\n<dd><p>Yes, you can specify width and height: [storelocator width=\"800\" height=\"600\"]<\/p><\/dd>\n<dt id=\"what%20do%20i%20enter%20for%20the%20google%20coordinates%3F\"><h3>What do I enter for the Google Coordinates?<\/h3><\/dt>\n<dd><p>No need to worry about that! Just save the new Store location and it will automatically populate using the Google Geocoding API.<\/p><\/dd>\n<dt id=\"what%20if%20coordinates%20don%27t%20populate%3F\"><h3>What if coordinates don't populate?<\/h3><\/dt>\n<dd><ul>\n<li>Check that you have entered a valid Google Maps API key in Settings<\/li>\n<li>Check the address you entered - it may have a misspelled street name<\/li>\n<li>Ensure the State\/Province, City and Country have been entered<\/li>\n<li>If your address has a Suite or Apt number at the beginning, try typing it after the street address instead<\/li>\n<\/ul><\/dd>\n<dt id=\"can%20i%20style%20the%20store%20locator%3F\"><h3>Can I style the Store Locator?<\/h3><\/dt>\n<dd><p>Yes, you can override the styles in your theme's CSS. The main container has the class <code>.pazzey-store-locator<\/code>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20bulk%20import%20stores%3F\"><h3>How do I bulk import stores?<\/h3><\/dt>\n<dd><p>Go to Stores &gt; Bulk Import in your WordPress admin. You can upload a CSV file with your store data. The CSV should include columns for: title, description, address, city, state, country, postal, lat, lng.<\/p>\n\n<p>You can either provide lat\/lng coordinates, or provide address and city and the plugin will automatically geocode them using the Google Maps API.<\/p>\n\n<p>Download the sample CSV from the import page to see the expected format.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Added bulk import feature for CSV files (Stores &gt; Bulk Import)<\/li>\n<li>Smart geocoding: uses provided coordinates or auto-geocodes from address<\/li>\n<li>CSV validation with preview before import<\/li>\n<li>Duplicate detection to prevent re-importing existing stores<\/li>\n<li>Downloadable error report for failed imports<\/li>\n<li>Sample CSV template download<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete rewrite for WordPress 6.x compatibility<\/li>\n<li>Added Settings page for Google Maps API key configuration<\/li>\n<li>Replaced iframe architecture with direct DOM embedding<\/li>\n<li>Converted XML responses to JSON via wp_ajax<\/li>\n<li>Added proper input sanitization and output escaping<\/li>\n<li>Added nonce verification for all AJAX requests<\/li>\n<li>Replaced deprecated functions (get_page, extract)<\/li>\n<li>Added REST API support (show_in_rest)<\/li>\n<li>Proper script\/style enqueueing<\/li>\n<li>Responsive design<\/li>\n<li>Internationalization ready<\/li>\n<li>Added uninstall handler<\/li>\n<li>Fixed all PHP notices and warnings<\/li>\n<li>HTTPS for all Google API requests<\/li>\n<li>Uses wp_remote_get instead of cURL<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Fixed issue with HTML tags showing in the link for Google Maps<\/li>\n<li>Changed bloginfo(url) to bloginfo(wpurl) for non-root WP installations<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Fixed shortcode URL bug<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Store Locator Plugin that lets you embed a Google Maps powered store locator.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/18468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=18468"}],"author":[{"embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/crispuno"}],"wp:attachment":[{"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=18468"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=18468"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=18468"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=18468"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=18468"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=18468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}