Source View: retrieve_password_key

To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).

Understanding Source Code

The best way to understand what a hook does is to look at where it occurs in the source code.

  • Action hooks look like this: do_action( "hook_name" )
  • Filter hooks look like this: apply_filters( "hook_name", "what_to_filter" ).

Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.

Source View

Line Code
218      if ( ! $allow )
219           return new WP_Error('no_password_reset', __('Password reset is not allowed for this user'));
220      else if ( is_wp_error($allow) )
221           return $allow;
222
223      $key = $wpdb->get_var($wpdb->prepare("SELECT user_activation_key FROM $wpdb->users WHERE user_login = %s", $user_login));
224      if ( empty($key) ) {
225           // Generate something random for a key...
226           $key = wp_generate_password(20, false);
227           do_action('retrieve_password_key', $user_login, $key);
228           // Now insert the new md5 key into the db
229           $wpdb->update($wpdb->users, array('user_activation_key' => $key), array('user_login' => $user_login));
230      }
231      $message = __('Someone requested that the password be reset for the following account:') . "\r\n\r\n";
232      $message .= network_home_url( '/' ) . "\r\n\r\n";
233      $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
234      $message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "\r\n\r\n";
235      $message .= __('To reset your password, visit the following address:') . "\r\n\r\n";
236      $message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";