Customise WordPress Update Notice in wp-admin backend area

I did not find any hook available to customize the message. So decided to remove the original update nag and have our custom nag over there.

Lets first remove the original nag

// Admin menu hook
add_action( 'admin_menu', 'remove_core_update_nag', 2 );

/**
 * Remove the original update nag
 */
function remove_core_update_nag() {
    remove_action( 'admin_notices', 'update_nag', 3 );
    remove_action( 'network_admin_notices', 'update_nag', 3 );
}

Once that’s removed, we will put our custom nag.

// Admin notice hook
add_action( 'admin_notices', 'custom_update_nag', 99 );
add_action( 'network_admin_notices', 'custom_update_nag', 99 );

/**
 * Custom update nag
 */
function custom_update_nag() {
    if ( is_multisite() && !current_user_can('update_core') )
        return false;

    global $pagenow;

    if ( 'update-core.php' == $pagenow )
        return;

    $cur = get_preferred_from_update_core();

    if ( ! isset( $cur->response ) || $cur->response != 'upgrade' )
        return false;

    if ( current_user_can('update_core') ) {
        $msg = sprintf( __('<a href="http://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> is available! <a href="%2$s">Please contact now</a>.'), $cur->current, 'your_custom_url' );
    } else {
        $msg = sprintf( __('<a href="http://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> is available! Please notify the site administrator.'), $cur->current );
    }

    echo "<div class="update-nag">$msg</div>";
}

Please make sure you need to replace your_custom_url with the actual link.