{"id":342084,"date":"2026-09-22T16:38:44","date_gmt":"2026-09-22T16:38:44","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/beverage-finder\/"},"modified":"2026-09-22T16:39:01","modified_gmt":"2026-09-22T16:39:01","slug":"beverage-finder","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/beverage-finder\/","author":23406734,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.2.0","stable_tag":"2.2.0","tested":"7.1.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Beverage Finder by Taps + Tables","header_author":"Taps + Tables","header_description":"Help customers find where your beverages are sold. Import locations with coordinates from a CSV and display them on an interactive Google Map.","assets_banners_color":"","last_updated":"2026-09-22 16:39:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/beveragefinder.net","header_author_uri":"https:\/\/tapsandtables.net","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.2.0":{"tag":"2.2.0","author":"tapsandtables","date":"2026-09-22 16:39:01","revision":3707779}},"upgrade_notice":{"2.2.0":"<p>Adds location editing, CSV export, and easier map panning.<\/p>","2.1.0":"<p>Adds latitude\/longitude columns to CSV import. Add Latitude and Longitude as the last two columns of your CSV.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3707779,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3707779,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3707779,"resolution":"1","location":"assets","locale":"","width":2934,"height":2536},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3707779,"resolution":"2","location":"assets","locale":"","width":3010,"height":2728},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3707779,"resolution":"3","location":"assets","locale":"","width":2136,"height":2510}},"screenshots":{"1":"Map and nearby locations list.","2":"Map and nearby locations list.","3":"BevFinder settings screen."}},"plugin_section":[],"plugin_tags":[282100,11597,2909,6102,278095],"plugin_category":[49],"plugin_contributors":[282102,282101],"plugin_business_model":[],"class_list":["post-342084","plugin","type-plugin","status-publish","hentry","plugin_tags-beverage","plugin_tags-brewery","plugin_tags-map","plugin_tags-store-locator","plugin_tags-where-to-buy","plugin_category-maps-and-location","plugin_contributors-chadelkins","plugin_contributors-tapsandtables","plugin_committers-tapsandtables"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/beverage-finder\/assets\/icon-128x128.png?rev=3707779","icon_2x":"https:\/\/ps.w.org\/beverage-finder\/assets\/icon-256x256.png?rev=3707779","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/beverage-finder\/assets\/screenshot-1.png?rev=3707779","caption":"Map and nearby locations list."},{"src":"https:\/\/ps.w.org\/beverage-finder\/assets\/screenshot-2.png?rev=3707779","caption":"Map and nearby locations list."},{"src":"https:\/\/ps.w.org\/beverage-finder\/assets\/screenshot-3.png?rev=3707779","caption":"BevFinder settings screen."}],"raw_content":"<!--section=description-->\n<p>Beverage Finder helps breweries, wineries, distilleries, and beverage distributors show customers which retailers carry their products.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Interactive Google Map with a sortable list of nearby locations<\/li>\n<li>CSV import (works with Encompass sales reports or the included template)<\/li>\n<li>Edit any location in the admin: name, address, products, and coordinates<\/li>\n<li>Download all of your locations as a CSV<\/li>\n<li>Brand\/product filter<\/li>\n<li>Visitor location via the browser's built-in geolocation (no API needed)<\/li>\n<li>Custom map pin<\/li>\n<li>Location expiration based on last delivery date<\/li>\n<li>Unlimited locations<\/li>\n<li>Responsive and mobile friendly<\/li>\n<\/ul>\n\n<p><strong>How it works<\/strong><\/p>\n\n<p>Import a CSV that includes latitude and longitude for each location. Locations appear on the map immediately. Re-importing updates delivery dates and coordinates for existing retailer\/brand combinations instead of creating duplicates.<\/p>\n\n<p>Need coordinates for a large address list? You can look them up yourself on Google Maps, use any geocoding tool you like, or use the separate hosted service at <a href=\"https:\/\/beveragefinder.net\">beveragefinder.net<\/a>, which exports a CSV you can import here. The plugin works fully without it and does not connect to it.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the Google Maps Platform to display the map.<\/p>\n\n<p><strong>Google Maps JavaScript API<\/strong> (Google LLC)<\/p>\n\n<ul>\n<li>What it's used for: rendering the interactive map, location markers, and the \"your location\" marker icon.<\/li>\n<li>When data is sent: every time a visitor views a page containing the <code>[beverage_finder]<\/code> shortcode.<\/li>\n<li>What is sent: your Maps API key, the page's referring URL, the visitor's IP address and browser details (as part of any request to Google), and the map coordinates being displayed.<\/li>\n<li>Terms of Service: https:\/\/cloud.google.com\/maps-platform\/terms<\/li>\n<li>Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<p>The visitor's own location (if they allow it) is read by their browser and sent only to your WordPress site to sort results by distance.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install it from Plugins \u2192 Add New.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>BevFinder<\/strong> in the admin menu and enter your Google Maps JavaScript API key.<\/li>\n<li>Import your locations CSV (including latitude and longitude).<\/li>\n<li>Add the <code>[beverage_finder]<\/code> shortcode to any page or post.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20google%20maps%20api%20key%3F\"><h3>Do I need a Google Maps API key?<\/h3><\/dt>\n<dd><p>Yes. The map is displayed with the Google Maps JavaScript API. Create a key in the <a href=\"https:\/\/console.cloud.google.com\">Google Cloud Console<\/a>, enable the Maps JavaScript API, restrict the key to your domain, and paste it into BevFinder \u2192 Maps.<\/p><\/dd>\n<dt id=\"what%20csv%20format%20is%20required%3F\"><h3>What CSV format is required?<\/h3><\/dt>\n<dd><p>Use the template included in the plugin (BevFinder \u2192 Show Instructions \u2192 Download the CSV template). Columns, in order:<\/p>\n\n<p>Distributor Number, Distributor Retailer ID, Retailer Name, Address, City, State, Zip, Distributor Product Num, Supplier Product Num, Brand Name, Product Name, On\/Off Premise, Salesperson, Delivery Date, Latitude, Longitude<\/p>\n\n<p>Rows without latitude\/longitude are imported but won't show on the map until coordinates are added.<\/p><\/dd>\n<dt id=\"how%20do%20i%20find%20latitude%20and%20longitude%3F\"><h3>How do I find latitude and longitude?<\/h3><\/dt>\n<dd><p>Search the address on Google Maps, right-click the pin, and click the coordinates to copy them (for example <code>37.7749, -122.4194<\/code>).<\/p><\/dd>\n<dt id=\"is%20there%20a%20location%20limit%3F\"><h3>Is there a location limit?<\/h3><\/dt>\n<dd><p>No. Import as many locations as you like.<\/p><\/dd>\n<dt id=\"how%20does%20location%20expiration%20work%3F\"><h3>How does location expiration work?<\/h3><\/dt>\n<dd><p>Locations whose last delivery date is older than the number of days set in <strong>Expire Locations After<\/strong> are hidden from the map. Importing a newer delivery date shows them again. Set the value to 0 to never expire locations.<\/p><\/dd>\n<dt id=\"can%20i%20fix%20a%20location%20without%20re-importing%3F\"><h3>Can I fix a location without re-importing?<\/h3><\/dt>\n<dd><p>Yes. Under My Locations, search for it and click Edit. You can change the retailer name, address, brand and product names, coordinates, and whether it shows on the map.<\/p>\n\n<p>The retailer name, address, and coordinates apply to every product at that location, so you only fix a moved store once. Edited locations are marked \"Edited\" in the list, and later CSV imports won't overwrite them \u2014 imports only refresh their delivery date.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20delete%20all%20locations%3F\"><h3>What happens when I delete all locations?<\/h3><\/dt>\n<dd><p>All locations are removed from your map. There is no undo.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20map%20pin%3F\"><h3>Can I customize the map pin?<\/h3><\/dt>\n<dd><p>Yes. Upload an image in BevFinder \u2192 Maps (minimum 44 x 60 px).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Added a searchable location list with editing for name, address, products, coordinates, and map visibility.<\/li>\n<li>Edits to a retailer name, address, or coordinates now apply to every product at that location.<\/li>\n<li>Hand-edited locations are marked \"Edited\" and are no longer overwritten by CSV imports (delivery dates still refresh).<\/li>\n<li>Added \"Download My Locations (CSV)\" in the same column order as the import template.<\/li>\n<li>Added a Show\/Hide button for the Google Maps API key.<\/li>\n<li>Map now pans with one finger; the scroll wheel scrolls the page and the +\/- buttons zoom.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>CSV import now reads Latitude and Longitude columns.<\/li>\n<li>Location expiration now filters by last delivery date.<\/li>\n<li>Re-importing a deleted location restores it.<\/li>\n<li>Import requires a valid nonce and the manage_options capability.<\/li>\n<li>All database queries use prepared statements with identifier placeholders.<\/li>\n<li>Map info windows escape all location data.<\/li>\n<li>Removed unused settings and legacy code.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Simplified admin panel.<\/li>\n<li>Fixed map display issue.<\/li>\n<\/ul>","raw_excerpt":"Show customers where your beverages are sold on an interactive Google Map, powered by a simple CSV import.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/342084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=342084"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tapsandtables"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=342084"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=342084"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=342084"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=342084"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=342084"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=342084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}