+add_action('admin_init', 'default_password_nag_handler');
+function default_password_nag_handler($errors = false) {
+ global $user_ID;
+ if ( ! get_user_option('default_password_nag') ) //Short circuit it.
+ return;
+
+ //get_user_setting = JS saved UI setting. else no-js-falback code.
+ if ( 'hide' == get_user_setting('default_password_nag') || isset($_GET['default_password_nag']) && '0' == $_GET['default_password_nag'] ) {
+ delete_user_setting('default_password_nag');
+ update_user_option($user_ID, 'default_password_nag', false, true);
+ }
+}
+
+add_action('profile_update', 'default_password_nag_edit_user', 10, 2);
+function default_password_nag_edit_user($user_ID, $old_data) {
+ if ( ! get_user_option('default_password_nag', $user_ID) ) //Short circuit it.
+ return;
+
+ $new_data = get_userdata($user_ID);
+
+ if ( $new_data->user_pass != $old_data->user_pass ) { //Remove the nag if the password has been changed.
+ delete_user_setting('default_password_nag', $user_ID);
+ update_user_option($user_ID, 'default_password_nag', false, true);
+ }
+}
+
+add_action('admin_notices', 'default_password_nag');
+function default_password_nag() {
+ if ( ! get_user_option('default_password_nag') ) //Short circuit it.
+ return;
+
+ echo '<div class="error default-password-nag">';
+ echo '<p>';
+ echo '<strong>' . __('Notice:') . '</strong> ';
+ _e('You’re using the auto-generated password for your account. Would you like to change it to something you’ll remember easier?');
+ echo '</p><p>';
+ printf( '<a href="%s">' . __('Yes, take me to my profile page') . '</a> | ', admin_url('profile.php') . '#password' );
+ printf( '<a href="%s" id="default-password-nag-no">' . __('No thanks, do not remind me again') . '</a>', '?default_password_nag=0' );
+ echo '</p></div>';
+}
+