In WordPress è semplice ottenere l'e-mail di un utente usando il suo nome pubblico.
La soluzione è la seguente:
function my_get_user_email_by_name( $name ) {
global $wpdb;
if ( ! $user = $wpdb->get_row( $wpdb->prepare(
"SELECT `user_email` FROM $wpdb->users WHERE `display_name` = %s", $name
) ) )
return null;
return $user->user_email;
}