A razão pela qual isso não funciona é porque existe um redirecionamento após a ação save_post. Uma maneira pela qual você pode obter o que deseja é implementando um trabalho rápido com o uso de query vars.
Aqui está uma amostra de classe para demonstrar:
class My_Awesome_Plugin {
public function __construct(){
add_action( 'save_post', array( $this, 'save_post' ) );
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
}
public function save_post( $post_id, $post, $update ) {
// Do you stuff here
// ...
// Add your query var if the coordinates are not retreive correctly.
add_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
}
public function add_notice_query_var( $location ) {
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
return add_query_arg( array( 'YOUR_QUERY_VAR' => 'ID' ), $location );
}
public function admin_notices() {
if ( ! isset( $_GET['YOUR_QUERY_VAR'] ) ) {
return;
}
?>
<div class="updated">
<p><?php esc_html_e( 'YOUR MESSAGE', 'text-domain' ); ?></p>
</div>
<?php
}
}
Espero que isso ajude você um pouco. Felicidades