WC_Tracker::get_address_autocomplete_info
Get address autocomplete info.
Method of the class: WC_Tracker{}
No Hooks.
Returns
Array. Address autocomplete info.
Usage
$result = WC_Tracker::get_address_autocomplete_info();
WC_Tracker::get_address_autocomplete_info() WC Tracker::get address autocomplete info code WC 10.5.0
public static function get_address_autocomplete_info() {
$data = array(
'enabled' => ( 'yes' === wc_bool_to_string( get_option( 'woocommerce_address_autocomplete_enabled', 'no' ) ) ) ? 'yes' : 'no',
'providers' => array(),
'preferred_provider' => '',
);
if ( ! class_exists( \Automattic\WooCommerce\Internal\AddressProvider\AddressProviderController::class ) ) {
// The option could still be set even if the class doesn't exist (e.g. if set manually in the DB).
$data['enabled'] = 'no';
return $data;
}
$autocomplete_controller = wc_get_container()->get( \Automattic\WooCommerce\Internal\AddressProvider\AddressProviderController::class );
$autocomplete_controller->init();
// Get all registered providers.
$providers = $autocomplete_controller->get_providers();
if ( is_array( $providers ) ) {
foreach ( $providers as $provider ) {
if ( ! ( $provider instanceof WC_Address_Provider ) ) {
continue;
}
$data['providers'][] = $provider->id;
}
}
if ( empty( $data['providers'] ) ) {
// If there are no providers, the feature is effectively disabled.
$data['enabled'] = 'no';
return $data;
}
if ( 'no' === $data['enabled'] ) {
// If the feature is disabled, no need to go further, but we will still track which providers are available.
return $data;
}
$data['preferred_provider'] = $autocomplete_controller->get_preferred_provider();
return $data;
}