我尝试在save_post挂钩中从一个自定义字段中获取一些数据。首先我尝试了save_post_{post-type}
钩子,但是update_post_meta
没有保存任何东西。然后我尝试了save_post,它正在工作......
奇怪的是save_post_{post-type}
挂钩被触发,因为它在我转储$_Request
时给了我一些输出(例如)。只有update_post_meta不起作用。 (我在update_post_meta之前和之后尝试过这一点,以确保谷歌地图协调的东西正在工作,它们是,因为我也能够转储它们。)
add_action('save_post_listing', 'geocode_address', 999999);
function geocode_address($post_id) {
global $api_key;
$custom_fields = get_post_meta($post_id, '', true);
if(!empty($custom_fields["wpcf-geo_map"][0])) {
$resp = wp_remote_get( "https://maps.google.com/maps/api/geocode/json?key=".$api_key."&address=".urlencode($custom_fields["wpcf-geo_map"][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_post_meta($post_id, "wpcf-latitude", $latitude);
update_post_meta($post_id, "wpcf-longitude", $longitude);
}
}
}
}