编程语言
首页 > 编程语言> > php-在Woocommerce 3中获取用户地理定位的国家名称

php-在Woocommerce 3中获取用户地理定位的国家名称

作者:互联网

我想根据用户geoip国家名称在woocommerce标头中添加“我们运送到{country name}”?

我想在我的woocommerce商店的标题中写一个html内容,例如我们运送到“您的国家名”.

任何帮助将不胜感激?

我已经启用woocommerce地理位置.

解决方法:

您可以通过以下方式基于WC_Geolocation Class创建自定义函数:

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

}

代码进入您的活动子主题(或活动主题)的function.php文件中.经过测试和工作.

用法

您将在子主题的header.php文件中添加以下代码:

1)在html代码之间:

<?php printf( '<p>' . __('We ship to %s', 'woocommerce') . '</p>', get_user_geo_country() ); ?>

2)或之间的PHP代码:

printf( '<p>' . __('We ship to %s', 'woocommerce') . '</p>', get_user_geo_country() );

将其转换为简码:

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( '<p>' . __('We ship to %s', 'woocommerce') . '</p>', WC()->countries->countries[ $country ] );
}
add_shortcode('geoip_country', 'get_user_geo_country');

代码进入您的活动子主题(或活动主题)的function.php文件中.经过测试和工作.

正常的简码用法(在后端文本编辑器中):

[geoip_country]

或在php代码中:

echo do_shortcode( "[geoip_country]" );

标签:geoip,woocommerce,html,wordpress,php
来源: https://codeday.me/bug/20191108/2009990.html