Geocode automatically from address field
-
I’m struggling to get the following function to work. Just wondering if anybody has had any success or could help with this.
From my CSV import I am trying to automatically get the Longitude and Latitude based on the address field and add it to the relevant custom fields before saving the post.
function my_save_custom_field_address( $post_id, $xml_data, $is_update ) { $address_custom_field = 'field_5c6d73c87ba23'; // The custom field you imported the address into $api_key = 'mygoogleAPIkeyhere'; // Your Google Maps Geocoding API Key $lat_cf = 'field_5c6d75323cc61'; // The custom field you want the latitude imported into $lng_cf = 'field_5c6d75273cc60'; // The custom field you want the longitude imported into if ( $address = get_post_meta( $post_id, $address_custom_field, true ) ) { $google_url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . rawurlencode( $address ) . '&key=' . $api_key; $curl = curl_init(); curl_setopt( $curl, CURLOPT_URL, $google_url ); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 ); $json = curl_exec( $curl ); curl_close( $curl ); if ( !empty( $json ) ) { $details = json_decode( $json, true ); $lat = $details['results'][0]['geometry']['location']['lat']; $lng = $details['results'][0]['geometry']['location']['lng']; update_post_meta( $post_id, $lat_cf, $lat ); update_post_meta( $post_id, $lng_cf, $lng ); } } } add_action( 'pmxi_saved_post', 'my_save_custom_field_address', 10, 3 );I have tried changing the custom field names (as these are Advanced Custom Fields) but still no content is added to the fields. I have tested my API key is working and it appears to be so really unsure why this won’t work.
This is based on this post
The topic ‘Geocode automatically from address field’ is closed to new replies.