+add_action('admin_init', 'default_password_nag_handler');
+/**
+ * @since 2.8.0
+ */
+function default_password_nag_handler($errors = false) {
+ global $user_ID;
+ // Short-circuit it.
+ if ( ! get_user_option('default_password_nag') )
+ return;
+
+ // get_user_setting = JS saved UI setting. else no-js-fallback 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);
+
+/**
+ * @since 2.8.0
+ */
+function default_password_nag_edit_user($user_ID, $old_data) {
+ // Short-circuit it.
+ if ( ! get_user_option('default_password_nag', $user_ID) )
+ return;
+
+ $new_data = get_userdata($user_ID);
+
+ // Remove the nag if the password has been changed.
+ if ( $new_data->user_pass != $old_data->user_pass ) {
+ delete_user_setting('default_password_nag');
+ update_user_option($user_ID, 'default_password_nag', false, true);
+ }
+}
+
+add_action('admin_notices', 'default_password_nag');
+
+/**
+ * @since 2.8.0
+ */
+function default_password_nag() {
+ global $pagenow;
+ // Short-circuit it.
+ if ( 'profile.php' == $pagenow || ! get_user_option('default_password_nag') )
+ 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 easier to remember?');
+ echo '</p><p>';
+ printf( '<a href="%s">' . __('Yes, take me to my profile page') . '</a> | ', get_edit_profile_url() . '#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>';
+}