Back to list of all filter and action hooks for Google Address Autocomplete.
Description #
Modify the Google Autocomplete frontend script settings. Often used to modify the mapping of the checkout fields to the data returned by the Google APIs.
Parameters #
$settings
(array) The Google Address Autocomplete settings array. Usually contains the following values:debugMode
(bool) Whether debug mode is enabled.autocompleteDefaultOptions
(array) Default options for the Places Autocomplete API settings object.includedPrimaryTypes
(array) Result types allowed to be returned for address autocomplete fields. Not used for company fields as specific types are configured for them. See accepted values on Places API documentation.
companyAutocompleteInputEnabled
(string) Whether autocomplete by company name is enabled. Acceptsyes
orno
.companyAutocompleteValueEnabled
(string) Whether autofill of the company field from address suggestions is enabled. Acceptsyes
orno
.companyAutocompleteTypes
(array) Result types allowed to be returned for company autocomplete. See accepted values on Places API documentation.autocompleteInputSelector
(string) CSS selector for autocomplete input fields. Used to target custom fields and enable autocomplete suggestions for them.companyAutocompleteInputSelector
(string) CSS selector for company autocomplete input fields.addressFieldsSelector
(string) CSS selector for address fields.localeComponents
(array) Field mapping for different locales.valueMapping
(array) Value mapping to correctly match values returned by the Google Places API to the expected values accepted by WooCommerce.useFieldDescriptionForInstructions
(string) Whether to use field descriptions for instructions. Acceptsyes
orno
.
The locationComponents
array consists of nested arrays of the field mappings for each locale. The array key is the country code or default for the default mappings, and the array values are the mappings.
For each locale components mapping, the following items can be expected, and the values are either a string
or an array
with the component names from the Google Places API:
country_name
(string) Places API component name for the country name.country
(string) Places API component name for the country code.postcode
(string) Places API component name for the postcode field.state
(string) Places API component name for the state field.city
(string) Places API component name for the city field.fallback_city
(string) Fallback Places API component name for the city field, used in case the component set for the city field is missing in the returned data.address_1
(string|array) Places API component name for the street address field. Will usually be an array with the various components that map to the street address field.components_separator
(string) The string used to separate components when multiple values are used for one field (for instance for the street address field). Defaults to one empty spacesubpremise_separator_position
(string) The position where the subpremise component separator string should be added. Defaults toafter
, and also acceptsbefore
.subpremise_separator_before
(string) The string used to separate the subpremise components before its value where subpremise is used. Defaults to empty string, no separator added.subpremise_separator_after
(string) The string used to separate the subpremise components after its value where subpremise is used. Defaults to/
.
Examples #
/**
* Change the `localeComponents` settings to fill custom house number fields.
*
* @param array $settings JS settings object of the plugin.
*/
function fcgaa_change_locale_mapping_house_number( $settings ) {
// New locale components to merge
$new_locale_components = array(
'default' => array(
'address_1' => array( 'route' ),
'house_number' => array( 'street_number' ),
'components_separator' => ', ',
),
// Example to set changes to specific countries only
// 'US' => array(
// 'address_1' => array( 'route' ),
// 'house_number' => array( 'street_number' ),
// 'components_separator' => ', ',
// ),
);
foreach ( $new_locale_components as $locale_key => $locale_settings ) {
// Create locale settings if not existent
if ( ! array_key_exists( $locale_key, $settings[ 'localeComponents' ] ) ) { $settings[ 'localeComponents' ][ $locale_key ] = array(); }
// Merge settings
$settings[ 'localeComponents' ][ $locale_key ] = array_merge( $settings[ 'localeComponents' ][ $locale_key ], $locale_settings );
}
return $settings;
}
add_filter( 'fc_gaa_google_autocomplete_js_settings', 'fcgaa_change_locale_mapping_house_number', 10 );