WordPress Version: 4.6
/**
* Retrieves the URL to the user's profile editor.
*
* @since 3.1.0
*
* @param int $user_id Optional. User ID. Defaults to current user.
* @param string $scheme Optional. The scheme to use. Default is 'admin', which obeys force_ssl_admin()
* and is_ssl(). 'http' or 'https' can be passed to force those schemes.
* @return string Dashboard URL link with optional path appended.
*/
function get_edit_profile_url($user_id = 0, $scheme = 'admin')
{
$user_id = $user_id ? (int) $user_id : get_current_user_id();
if (is_user_admin()) {
$url = user_admin_url('profile.php', $scheme);
} elseif (is_network_admin()) {
$url = network_admin_url('profile.php', $scheme);
} else {
$url = get_dashboard_url($user_id, 'profile.php', $scheme);
}
/**
* Filters the URL for a user's profile editor.
*
* @since 3.1.0
*
* @param string $url The complete URL including scheme and path.
* @param int $user_id The user ID.
* @param string $scheme Scheme to give the URL context. Accepts 'http', 'https', 'login',
* 'login_post', 'admin', 'relative' or null.
*/
return apply_filters('edit_profile_url', $url, $user_id, $scheme);
}