WC_Tracker::get_address_autocomplete_infopublic staticWC 1.0

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() 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;
}