Я использую User Front End Pro, чтобы предоставить регистрационную форму переднего конца. Одна строка для адреса, и я хочу использовать ее для отображения карты всех пользователей с помощью Geo Mashup.Геокодирование пользовательских мета в WordPress
У меня есть настраиваемое поле, которое сохраняется пользователю meta под названием geocode_address
, мне нужно его геокодировать и выводить его на два отдельных поля Широта и долгота. Я нашел this for geocoding custom post data и попытался изменить его для пользователя meta, но он не работает и заставляет регистрацию зависать. Что я сделал не так?
function geocode_address($user_id)
{
$custom_fields = get_user_meta();
if(isset($custom_fields["geocode_address"]) && !empty($custom_fields["geocode_address"][0]))
{
$resp = wp_remote_get("http://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($custom_fields["geocode_address"][0])."&sensor=false");
if (200 == $resp['response']['code']) {
$body = $resp['body'];
$data = json_decode($body);
if($data->status=="OK"){
$latitude = $data->results[0]->geometry->location->lat;
$longitude = $data->results[0]->geometry->location->lng;
update_user_meta($user_id, "latitude", $latitude);
update_user_meta($user_id, "longitude", $longitude);
}
}
}
}
add_action('update_user_meta', 'geocode_address');
В качестве примечания, Geomashup имеет функцию геокодировать пользовательское поле, но когда я вхожу «геокодирования адрес» это не похоже на работу ...
Можете ли вы показать значение выборки для поля 'geocode_address'? – brasofilo
Образец значения будет выглядеть так: «Vällebergsvägen 7 459 30 Ljungskile» –