{"id":401516,"date":"2026-11-12T22:40:51","date_gmt":"2026-11-12T22:40:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/places-autocomplete-for-acf\/"},"modified":"2026-11-12T23:02:59","modified_gmt":"2026-11-12T23:02:59","slug":"places-autocomplete-for-acf","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/places-autocomplete-for-acf\/","author":23602178,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Places Autocomplete for ACF","header_author":"CIRIC.dev","header_description":"Restores address search in the ACF Google Map field for Google Cloud projects that cannot enable the legacy Places API, by switching autocomplete to Places API (New).","last_updated":"2026-11-12 23:02:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/alexmeanpug\/places-autocomplete-for-acf","header_author_uri":"https:\/\/ciric.dev","rating":0,"author_block_rating":0,"active_installs":0,"downloads":78,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"ciricdev","date":"2026-11-12 23:02:59","revision":3799399}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3799368,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3799368,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3799368,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3799368,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3799368,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3799399,"resolution":"1","location":"assets","locale":"","width":2000,"height":810},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3799399,"resolution":"2","location":"assets","locale":"","width":2000,"height":810}},"screenshots":{"1":"Address suggestions from Places API (New) in the ACF Google Map field.","2":"Without this plugin: with an API key from a new Google Cloud project, the ACF Google Map field shows \"This page can't load Google Maps correctly\" when you search for an address."}},"plugin_section":[],"plugin_tags":[2211,3513,3226,1571,245569],"plugin_category":[49,59],"plugin_contributors":[292410],"plugin_business_model":[],"class_list":["post-401516","plugin","type-plugin","status-publish","hentry","plugin_tags-acf","plugin_tags-address","plugin_tags-autocomplete","plugin_tags-google-maps","plugin_tags-places-api","plugin_category-maps-and-location","plugin_category-utilities-and-tools","plugin_contributors-ciricdev","plugin_committers-ciricdev"],"banners":{"banner":"https:\/\/ps.w.org\/places-autocomplete-for-acf\/assets\/banner-772x250.png?rev=3799368","banner_2x":"https:\/\/ps.w.org\/places-autocomplete-for-acf\/assets\/banner-1544x500.png?rev=3799368","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/places-autocomplete-for-acf\/assets\/icon.svg?rev=3799368","icon":"https:\/\/ps.w.org\/places-autocomplete-for-acf\/assets\/icon.svg?rev=3799368","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/places-autocomplete-for-acf\/assets\/screenshot-1.png?rev=3799399","caption":"Address suggestions from Places API (New) in the ACF Google Map field."},{"src":"https:\/\/ps.w.org\/places-autocomplete-for-acf\/assets\/screenshot-2.png?rev=3799399","caption":"Without this plugin: with an API key from a new Google Cloud project, the ACF Google Map field shows \"This page can't load Google Maps correctly\" when you search for an address."}],"raw_content":"<!--section=description-->\n<p>The Google Map field in Advanced Custom Fields (ACF) uses Google's legacy Places API for its address search. Since March 1, 2025, Google no longer lets new Google Cloud projects enable the legacy Places API.<\/p>\n\n<p>If your API key comes from a new project, the map loads, but as soon as you type an address nothing happens and the browser console shows:<\/p>\n\n<pre><code>You're calling a legacy API, which is not enabled for your project ... LegacyApiNotActivatedMapError\n<\/code><\/pre>\n\n<p>This plugin fixes that without changing your fields or your saved data:<\/p>\n\n<ul>\n<li>Stops ACF from loading the legacy Places library.<\/li>\n<li>Adds an address suggestions dropdown to the Google Map field, powered by Places API (New).<\/li>\n<li>Saves the selected place through ACF's own field methods, so the stored value (address, lat, lng, place_id, street, city, state, post code, country, etc.) has the same format as before.<\/li>\n<li>Works in wp-admin, in repeater and flexible content rows, and in front-end forms built with <code>acf_form()<\/code>.<\/li>\n<li>Supports keyboard navigation (arrow keys, Enter, Escape) and screen readers (ARIA combobox\/listbox).<\/li>\n<li>Shows a clear message right under the field when Google rejects a request (API not enabled, key restricted, domain not allowed, billing off), with a link to Google Cloud Console.<\/li>\n<li>Uses Autocomplete session tokens, so Google bills each address search as a single session.<\/li>\n<\/ul>\n\n<p>No settings page. Activate it and the field works.<\/p>\n\n<p><strong>Requirements<\/strong><\/p>\n\n<ul>\n<li>Advanced Custom Fields or ACF PRO.<\/li>\n<li>A Google Maps API key that ACF already uses, with these APIs enabled in Google Cloud Console:\n\n<ul>\n<li>Maps JavaScript API<\/li>\n<li>Geocoding API<\/li>\n<li>Places API (New)<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>This plugin is not affiliated with or endorsed by WP Engine (ACF) or Google.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Google Maps Platform, Places API (New), to show address suggestions and retrieve the selected place's location in the ACF Google Map field.<\/p>\n\n<ul>\n<li><strong>When:<\/strong> only on screens where an ACF Google Map field is shown, and only when a user types at least 3 characters into the field's search box or selects a suggestion.<\/li>\n<li><strong>What is sent:<\/strong> the text typed into the search box, the current map center (to rank nearby results first), the site language, an anonymous session token, and the Google Maps API key configured for ACF. Google also receives the usual browser request data, such as the IP address and the page URL (referrer).<\/li>\n<li><strong>Provider:<\/strong> Google LLC.<\/li>\n<li>Google Maps Platform Terms of Service: https:\/\/cloud.google.com\/maps-platform\/terms<\/li>\n<li>Google Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<p>ACF itself already loads the Google Maps JavaScript API on these screens. This plugin does not add any other external requests.<\/p>\n\n<h3>Contributing<\/h3>\n\n<p>Development happens on GitHub: https:\/\/github.com\/alexmeanpug\/places-autocomplete-for-acf<\/p>\n\n<p>Bug reports and pull requests are welcome.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>places-autocomplete-for-acf<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it from Plugins &gt; Add New.<\/li>\n<li>Activate the plugin.<\/li>\n<li>In Google Cloud Console, make sure Maps JavaScript API, Geocoding API and Places API (New) are enabled for the API key ACF uses. If the key has \"API restrictions\", add these three APIs to the list.<\/li>\n<li>Open a post with an ACF Google Map field and start typing an address.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20this%20plugin%3F\"><h3>Do I need this plugin?<\/h3><\/dt>\n<dd><p>You need it if typing in the ACF Google Map search box shows no suggestions and the browser console shows <code>LegacyApiNotActivatedMapError<\/code>. This usually happens with API keys from Google Cloud projects created after March 1, 2025.<\/p>\n\n<p>If your project still has the legacy Places API enabled, the field already works, but this plugin moves it to the newer API.<\/p><\/dd>\n<dt id=\"will%20my%20existing%20map%20values%20change%3F\"><h3>Will my existing map values change?<\/h3><\/dt>\n<dd><p>No. Existing values are not touched. New selections are saved in the same format ACF uses.<\/p><\/dd>\n<dt id=\"i%20see%20a%20red%20message%20under%20the%20search%20box.%20what%20does%20it%20mean%3F\"><h3>I see a red message under the search box. What does it mean?<\/h3><\/dt>\n<dd><p>Google rejected the request, and the message says why. The most common causes are:<\/p>\n\n<ul>\n<li>Places API (New) is not enabled in the Google Cloud project that owns the key.<\/li>\n<li>The key has API restrictions that do not include Places API (New).<\/li>\n<li>The key's website restrictions do not include your admin domain.<\/li>\n<\/ul>\n\n<p>After changing settings in Google Cloud Console, wait a few minutes and reload the page.<\/p><\/dd>\n<dt id=\"i%20still%20see%20an%20error%20in%20the%20console.\"><h3>I still see an error in the console.<\/h3><\/dt>\n<dd><p>Check that Places API (New) is enabled for the project that owns the key, and that the key's website restrictions include your admin domain. Errors from this plugin start with <code>[Places Autocomplete for ACF]<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20limit%20suggestions%20to%20one%20country%3F\"><h3>Can I limit suggestions to one country?<\/h3><\/dt>\n<dd><p>Yes, with the <code>ciricdev_paacf_settings<\/code> filter:<\/p>\n\n<pre><code>add_filter( 'ciricdev_paacf_settings', function ( $settings ) {\n    $settings['includedRegionCodes'] = array( 'us' );\n    return $settings;\n} );\n<\/code><\/pre>\n\n<p>Available keys: <code>minChars<\/code> (default 3), <code>debounce<\/code> in milliseconds (default 250), <code>includedRegionCodes<\/code> (up to 15 two-letter codes), <code>language<\/code> (default: site language).<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20request%20in%20javascript%3F\"><h3>Can I change the request in JavaScript?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>ciricdev_paacf_request<\/code> ACF JS filter to adjust the Places API (New) autocomplete request, and the <code>ciricdev_paacf_place_selected<\/code> action to react when a place is chosen:<\/p>\n\n<pre><code>acf.addFilter( 'ciricdev_paacf_request', function ( request, field, map ) {\n    request.includedPrimaryTypes = [ 'street_address' ];\n    return request;\n} );\n<\/code><\/pre><\/dd>\n<dt id=\"does%20it%20work%20with%20acf%20pro%3F\"><h3>Does it work with ACF PRO?<\/h3><\/dt>\n<dd><p>Yes. It works with both the free and PRO versions of ACF.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Fixes \"LegacyApiNotActivatedMapError\" in the ACF Google Map field by switching its address search to Google Places API (New).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/401516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=401516"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ciricdev"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=401516"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=401516"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=401516"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=401516"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=401516"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=401516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}