Obtener nombre de país geolocalizado por el usuario en Woocommerce 3

Me gustaría agregar “Enviamos a {country name} ” en el encabezado de woocommerce basado en el nombre de país de geoip del usuario?

Me gustaría escribir un contenido html en el encabezado de mi tienda de Woocommerce, tal como lo enviamos a “su nombre de país” .

¿Cualquier ayuda sería realmente apreciada?

Ya tengo habilitada la geolocalización de woocommerce.

Puede crear una función personalizada basada en la clase WC_Geolocation esta manera:

 function get_user_geo_country(){ $geo = new WC_Geolocation(); // Get WC_Geolocation instance object $user_ip = $geo->get_ip_address(); // Get user IP $user_geo = $geo->geolocate_ip( $user_ip ); // Get geolocated user data. $country = $user_geo['country']; // Get the country code return WC()->countries->countries[ $country ]; // return the country name } 

El código va en el archivo function.php de su tema secundario activo (o tema activo). Probado y funciona.


USO

Agregará el siguiente código en el archivo header.php del tema de su hijo:

1) entre el código html:

 ' . __('We ship to %s', 'woocommerce') . '

', get_user_geo_country() ); ?>

2) o entre el código php:

 printf( '

' . __('We ship to %s', 'woocommerce') . '

', get_user_geo_country() );

Convertir esto a Shortcode:

 function get_user_geo_country(){ $geo = new WC_Geolocation(); // Get WC_Geolocation instance object $user_ip = $geo->get_ip_address(); // Get user IP $user_geo = $geo->geolocate_ip( $user_ip ); // Get geolocated user data. $country = $user_geo['country']; // Get the country code return sprintf( '

' . __('We ship to %s', 'woocommerce') . '

', WC()->countries->countries[ $country ] ); } add_shortcode('geoip_country', 'get_user_geo_country');

El código va en el archivo function.php de su tema secundario activo (o tema activo). Probado y funciona.

Uso normal de shortcode (en el editor de texto de fondo) :

 [geoip_country] 

o en el código php:

 echo do_shortcode( "[geoip_country]" );