But this feels kludgy to me. Is there a way to hook into an action or filter and remove ALL the update nag messages for non-admin users? No third-party plugin recommendations please.
3
In wp-admin/includes/update.php file
if ( current_user_can('update_core') )
$msg = sprintf( __('An automated WordPress update has failed to complete - <a href="https://wordpress.stackexchange.com/questions/231010/%s">please attempt the update again now</a>.'), 'update-core.php' );
else
$msg = __('An automated WordPress update has failed to complete! Please notify the site administrator.');
We can see that messages are different based on the current user role and this is maintenance_nag.
Basically we have two update nags and can be found in admin-filters.php