Title: problemsolver's Replies | WordPress.org

---

# problemsolver

  [  ](https://wordpress.org/support/users/problemsolver/)

 *   [Profile](https://wordpress.org/support/users/problemsolver/)
 *   [Topics Started](https://wordpress.org/support/users/problemsolver/topics/)
 *   [Replies Created](https://wordpress.org/support/users/problemsolver/replies/)
 *   [Reviews Written](https://wordpress.org/support/users/problemsolver/reviews/)
 *   [Topics Replied To](https://wordpress.org/support/users/problemsolver/replied-to/)
 *   [Engagements](https://wordpress.org/support/users/problemsolver/engagements/)
 *   [Favorites](https://wordpress.org/support/users/problemsolver/favorites/)

 Search replies:

## Forum Replies Created

Viewing 3 replies - 1 through 3 (of 3 total)

 *   Forum: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
   
   In reply to: [Log in or Password changed? Help. Cannot log in](https://wordpress.org/support/topic/log-in-or-password-changed-help-cannot-log-in/)
 *  Thread Starter [problemsolver](https://wordpress.org/support/users/problemsolver/)
 * (@problemsolver)
 * [15 years, 1 month ago](https://wordpress.org/support/topic/log-in-or-password-changed-help-cannot-log-in/#post-1987532)
 * And the wp-login file. Thaaanks!
 * <?php
    /** * WordPress User Page * * Handles authentication, registering, resetting
   passwords, forgot password, * and other user handling. * * [@package](https://wordpress.org/support/users/package/)
   WordPress */
 * /** Make sure that the WordPress bootstrap has run before continuing. */
    require(
   dirname(__FILE__) . ‘/wp-load.php’ );
 * // Redirect to https login if forced to use SSL
    if ( force_ssl_admin() && !is_ssl()){
   if ( 0 === strpos($_SERVER[‘REQUEST_URI’], ‘http’) ) { wp_redirect(preg_replace(‘
   |^http://|’, ‘[https://&#8217](https://&#8217);, $_SERVER[‘REQUEST_URI’])); exit();}
   else { wp_redirect(‘[https://&#8217](https://&#8217); . $_SERVER[‘HTTP_HOST’].
   $_SERVER[‘REQUEST_URI’]); exit(); } }
 * /**
    * Outputs the header for the login page. * * @uses do_action() Calls the‘
   login_head’ for outputting HTML in the Log In * header. * @uses apply_filters()
   Calls ‘login_headerurl’ for the top login link. * @uses apply_filters() Calls‘
   login_headertitle’ for the top login title. * @uses apply_filters() Calls ‘login_message’
   on the message to display in the * header. * @uses $error The error global, which
   is checked for displaying errors. * * [@param](https://wordpress.org/support/users/param/)
   string $title Optional. WordPress Log In Page title to display in * <title/> 
   element. * [@param](https://wordpress.org/support/users/param/) string $message
   Optional. Message to display in header. * [@param](https://wordpress.org/support/users/param/)
   WP_Error $wp_error Optional. WordPress Error Object */ function login_header(
   $title = ‘Log In’, $message = ”, $wp_error = ”) { global $error, $is_iphone, 
   $interim_login, $current_site;
 *  // Don’t index any of these forms
    add_filter( ‘pre_option_blog_public’, ‘__return_zero’);
   add_action( ‘login_head’, ‘noindex’ );
 *  if ( empty($wp_error) )
    $wp_error = new WP_Error();
 *  // Shake it!
    $shake_error_codes = array( ’empty_password’, ’empty_email’, ‘
   invalid_email’, ‘invalidcombo’, ’empty_username’, ‘invalid_username’, ‘incorrect_password’);
   $shake_error_codes = apply_filters( ‘shake_error_codes’, $shake_error_codes );
 *  if ( $shake_error_codes && $wp_error->get_error_code() && in_array( $wp_error-
   >get_error_code(), $shake_error_codes ) )
    add_action( ‘login_head’, ‘wp_shake_js’,
   12 );
 *  ?>
    <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&gt](http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&gt);
   <html xmlns=”[http://www.w3.org/1999/xhtml&#8221](http://www.w3.org/1999/xhtml&#8221);
   <?php language_attributes(); ?>> <head> <title><?php bloginfo(‘name’); ?> › <?
   php echo $title; ?></title> <meta http-equiv=”Content-Type” content=”<?php bloginfo(‘
   html_type’); ?>; charset=<?php bloginfo(‘charset’); ?>” /> <?php wp_admin_css(‘
   login’, true ); wp_admin_css( ‘colors-fresh’, true );
 *  if ( $is_iphone ) { ?>
    <meta name=”viewport” content=”width=320; initial-scale
   =0.9; maximum-scale=1.0; user-scalable=0;” /> <style type=”text/css” media=”screen”
   > form { margin-left: 0px; } #login { margin-top: 20px; } </style> <?php } elseif(
   isset($interim_login) && $interim_login ) { ?> <style type=”text/css” media=”
   all”> .login #login { margin: 20px auto; } </style> <?php }
 *  do_action( ‘login_enqueue_scripts’ );
    do_action( ‘login_head’ ); ?> </head>
   <body class=”login”> <?php if ( !is_multisite() ) { ?> <div id=”login”><h1>” 
   title=”<?php echo apply_filters(‘login_headertitle’, esc_attr__(‘Powered by WordPress’));?
   >”><?php bloginfo(‘name’); ?></h1> <?php } else { ?> <div id=”login”><h1>” title
   =”<?php echo apply_filters(‘login_headertitle’, esc_attr($current_site->site_name));?
   >”><span class=”hide”><?php bloginfo(‘name’); ?></span></h1> <?php }
 *  $message = apply_filters(‘login_message’, $message);
    if ( !empty( $message ))
   echo $message . “\n”;
 *  // Incase a plugin uses $error rather than the $errors object
    if ( !empty( 
   $error ) ) { $wp_error->add(‘error’, $error); unset($error); }
 *  if ( $wp_error->get_error_code() ) {
    $errors = ”; $messages = ”; foreach ( 
   $wp_error->get_error_codes() as $code ) { $severity = $wp_error->get_error_data(
   $code); foreach ( $wp_error->get_error_messages($code) as $error ) { if ( ‘message’
   == $severity ) $messages .= ‘ ‘ . $error . “\n”; else $errors .= ‘ ‘ . $error.“\
   n”; } } if ( !empty($errors) ) echo ‘<div id=”login_error”>’ . apply_filters(‘
   login_errors’, $errors) . “</div>\n”; if ( !empty($messages) ) echo ‘<p class
   =”message”>’ . apply_filters(‘login_messages’, $messages) . “</p>\n”; } } // 
   End of login_header()
 * /**
    * Outputs the footer for the login page. * * [@param](https://wordpress.org/support/users/param/)
   string $input_id Which input to auto-focus */ function login_footer($input_id
   = ”) { echo “</div>\n”;
 *  if ( !empty($input_id) ) {
    ?> <script type=”text/javascript”> try{document.
   getElementById(‘<?php echo $input_id; ?>’).focus();}catch(e){} if(typeof wpOnload
   ==’function’)wpOnload(); </script> <?php } ?> <p id=”backtoblog”>/” title=”<?
   php esc_attr_e(‘Are you lost?’) ?>”><?php printf(__(‘← Back to %s’), get_bloginfo(‘
   title’, ‘display’ )); ?></p> <?php do_action(‘login_footer’); ?> </body> </html
   > <?php }
 * function wp_shake_js() {
    global $is_iphone; if ( $is_iphone ) return; ?> <script
   type=”text/javascript”> addLoadEvent = function(func){if(typeof jQuery!=”undefined”)
   jQuery(document).ready(func);else if(typeof wpOnload!=’function’){wpOnload=func;}
   else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}}; function
   s(id,pos){g(id).left=pos+’px’;} function g(id){return document.getElementById(
   id).style;} function shake(id,a,d){c=a.shift();s(id,c);if(a.length>0){setTimeout(
   function(){shake(id,a,d);},d);}else{try{g(id).position=’static’;wp_attempt_focus();}
   catch(e){}}} addLoadEvent(function(){ var p=new Array(15,30,15,0,-15,-30,-15,0);
   p=p.concat(p.concat(p));var i=document.forms[0].id;g(i).position=’relative’;shake(
   i,p,20);}); </script> <?php }
 * /**
    * Handles sending password retrieval email to user. * * @uses $wpdb WordPress
   Database object * * [@return](https://wordpress.org/support/users/return/) bool
   |WP_Error True: when finish. WP_Error on error */ function retrieve_password(){
   global $wpdb, $current_site;
 *  $errors = new WP_Error();
 *  if ( empty( $_POST[‘user_login’] ) && empty( $_POST[‘user_email’] ) )
    $errors-
   >add(’empty_username’, __(‘**ERROR**: Enter a username or e-mail address.’));
 *  if ( strpos($_POST[‘user_login’], ‘@’) ) {
    $user_data = get_user_by_email(trim(
   $_POST[‘user_login’])); if ( empty($user_data) ) $errors->add(‘invalid_email’,
   __(‘**ERROR**: There is no user registered with that email address.’)); } else{
   $login = trim($_POST[‘user_login’]); $user_data = get_userdatabylogin($login);}
 *  do_action(‘lostpassword_post’);
 *  if ( $errors->get_error_code() )
    return $errors;
 *  if ( !$user_data ) {
    $errors->add(‘invalidcombo’, __(‘**ERROR**: Invalid username
   or e-mail.’)); return $errors; }
 *  // redefining user_login ensures we return the right case in the email
    $user_login
   = $user_data->user_login; $user_email = $user_data->user_email;
 *  do_action(‘retreive_password’, $user_login); // Misspelled and deprecated
    do_action(‘
   retrieve_password’, $user_login);
 *  $allow = apply_filters(‘allow_password_reset’, true, $user_data->ID);
 *  if ( ! $allow )
    return new WP_Error(‘no_password_reset’, __(‘Password reset
   is not allowed for this user’)); else if ( is_wp_error($allow) ) return $allow;
 *  $key = $wpdb->get_var($wpdb->prepare(“SELECT user_activation_key FROM $wpdb-
   >users WHERE user_login = %s”, $user_login));
    if ( empty($key) ) { // Generate
   something random for a key… $key = wp_generate_password(20, false); do_action(‘
   retrieve_password_key’, $user_login, $key); // Now insert the new md5 key into
   the db $wpdb->update($wpdb->users, array(‘user_activation_key’ => $key), array(‘
   user_login’ => $user_login)); } $message = __(‘Someone requested that the password
   be reset for the following account:’) . “\r\n\r\n”; $message .= network_site_url().“\
   r\n\r\n”; $message .= sprintf(__(‘Username: %s’), $user_login) . “\r\n\r\n”; 
   $message .= __(‘If this was a mistake, just ignore this email and nothing will
   happen.’) . “\r\n\r\n”; $message .= __(‘To reset your password, visit the following
   address:’) . “\r\n\r\n”; $message .= ‘<‘ . network_site_url(“wp-login.php?action
   =rp&key=$key&login=” . rawurlencode($user_login), ‘login’) . “>\r\n”;
 *  if ( is_multisite() )
    $blogname = $GLOBALS[‘current_site’]->site_name; else//
   The blogname option is escaped with esc_html on the way into the database in 
   sanitize_option // we want to reverse this for the plain text arena of emails.
   $blogname = wp_specialchars_decode(get_option(‘blogname’), ENT_QUOTES);
 *  $title = sprintf( __(‘[%s] Password Reset’), $blogname );
 *  $title = apply_filters(‘retrieve_password_title’, $title);
    $message = apply_filters(‘
   retrieve_password_message’, $message, $key);
 *  if ( $message && !wp_mail($user_email, $title, $message) )
    wp_die( __(‘The 
   e-mail could not be sent.’) . “\n” . __(‘Possible reason: your host may have 
   disabled the mail() function…’) );
 *  return true;
    }
 * /**
    * Retrieves a user row based on password reset key and login * * @uses $
   wpdb WordPress Database object * * [@param](https://wordpress.org/support/users/param/)
   string $key Hash to validate sending user’s password * [@param](https://wordpress.org/support/users/param/)
   string $login The user login * * [@return](https://wordpress.org/support/users/return/)
   object|WP_Error */ function check_password_reset_key($key, $login) { global $
   wpdb;
 *  $key = preg_replace(‘/[^a-z0-9]/i’, ”, $key);
 *  if ( empty( $key ) || !is_string( $key ) )
    return new WP_Error(‘invalid_key’,
   __(‘Invalid key’));
 *  if ( empty($login) || !is_string($login) )
    return new WP_Error(‘invalid_key’,
   __(‘Invalid key’));
 *  $user = $wpdb->get_row($wpdb->prepare(“SELECT * FROM $wpdb->users WHERE user_activation_key
   = %s AND user_login = %s”, $key, $login));
 *  if ( empty( $user ) )
    return new WP_Error(‘invalid_key’, __(‘Invalid key’));
 *  return $user;
    }
 * /**
    * Handles resetting the user’s password. * * @uses $wpdb WordPress Database
   object * * [@param](https://wordpress.org/support/users/param/) string $key Hash
   to validate sending user’s password */ function reset_password($user, $new_pass){
   do_action(‘password_reset’, $user, $new_pass);
 *  wp_set_password($new_pass, $user->ID);
 *  wp_password_change_notification($user);
    }
 * /**
    * Handles registering a new user. * * [@param](https://wordpress.org/support/users/param/)
   string $user_login User’s username for logging in * [@param](https://wordpress.org/support/users/param/)
   string $user_email User’s email address to send password and add * [@return](https://wordpress.org/support/users/return/)
   int|WP_Error Either user’s ID or error on failure. */ function register_new_user(
   $user_login, $user_email ) { $errors = new WP_Error();
 *  $sanitized_user_login = sanitize_user( $user_login );
    $user_email = apply_filters(‘
   user_registration_email’, $user_email );
 *  // Check the username
    if ( $sanitized_user_login == ” ) { $errors->add( ’empty_username’,
   __( ‘**ERROR**: Please enter a username.’ ) ); } elseif ( ! validate_username(
   $user_login ) ) { $errors->add( ‘invalid_username’, __( ‘**ERROR**: This username
   is invalid because it uses illegal characters. Please enter a valid username.’));
   $sanitized_user_login = ”; } elseif ( username_exists( $sanitized_user_login )){
   $errors->add( ‘username_exists’, __( ‘**ERROR**: This username is already registered,
   please choose another one.’ ) ); }
 *  // Check the e-mail address
    if ( $user_email == ” ) { $errors->add( ’empty_email’,
   __( ‘**ERROR**: Please type your e-mail address.’ ) ); } elseif ( ! is_email(
   $user_email ) ) { $errors->add( ‘invalid_email’, __( ‘**ERROR**: The email address
   isn’t correct.’ ) ); $user_email = ”; } elseif ( email_exists( $user_email ) ){
   $errors->add( ’email_exists’, __( ‘**ERROR**: This email is already registered,
   please choose another one.’ ) ); }
 *  do_action( ‘register_post’, $sanitized_user_login, $user_email, $errors );
 *  $errors = apply_filters( ‘registration_errors’, $errors, $sanitized_user_login,
   $user_email );
 *  if ( $errors->get_error_code() )
    return $errors;
 *  $user_pass = wp_generate_password( 12, false);
    $user_id = wp_create_user( $
   sanitized_user_login, $user_pass, $user_email ); if ( ! $user_id ) { $errors-
   >add( ‘registerfail’, sprintf( __( ‘**ERROR**: Couldn’t register you… please 
   contact the [webmaster](https://wordpress.org/support/users/problemsolver/replies/%s?output_format=md)!’),
   get_option( ‘admin_email’ ) ) ); return $errors; }
 *  update_user_option( $user_id, ‘default_password_nag’, true, true ); //Set up
   the Password change nag.
 *  wp_new_user_notification( $user_id, $user_pass );
 *  return $user_id;
    }
 * //
    // Main //
 * $action = isset($_REQUEST[‘action’]) ? $_REQUEST[‘action’] : ‘login’;
    $errors
   = new WP_Error();
 * if ( isset($_GET[‘key’]) )
    $action = ‘resetpass’;
 * // validate action so as to default to the login screen
    if ( !in_array($action,
   array(‘logout’, ‘lostpassword’, ‘retrievepassword’, ‘resetpass’, ‘rp’, ‘register’,‘
   login’), true) && false === has_filter(‘login_form_’ . $action) ) $action = ‘
   login’;
 * nocache_headers();
 * header(‘Content-Type: ‘.get_bloginfo(‘html_type’).’; charset=’.get_bloginfo(‘
   charset’));
 * if ( defined(‘RELOCATE’) ) { // Move flag is set
    if ( isset( $_SERVER[‘PATH_INFO’])&&(
   $_SERVER[‘PATH_INFO’] != $_SERVER[‘PHP_SELF’]) ) $_SERVER[‘PHP_SELF’] = str_replace(
   $_SERVER[‘PATH_INFO’], ”, $_SERVER[‘PHP_SELF’] );
 *  $schema = is_ssl() ? ‘[https://&#8217](https://&#8217); : ‘[http://&#8217](http://&#8217);;
   
   if ( dirname($schema . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘PHP_SELF’]) != get_option(‘
   siteurl’) ) update_option(‘siteurl’, dirname($schema . $_SERVER[‘HTTP_HOST’] .
   $_SERVER[‘PHP_SELF’]) ); }
 * //Set a cookie now to see if they are supported by the browser.
    setcookie(TEST_COOKIE,‘
   WP Cookie check’, 0, COOKIEPATH, COOKIE_DOMAIN); if ( SITECOOKIEPATH != COOKIEPATH)
   setcookie(TEST_COOKIE, ‘WP Cookie check’, 0, SITECOOKIEPATH, COOKIE_DOMAIN);
 * // allow plugins to override the default actions, and to add extra actions if
   they want
    do_action(‘login_form_’ . $action);
 * $http_post = (‘POST’ == $_SERVER[‘REQUEST_METHOD’]);
    switch ($action) {
 * case ‘logout’ :
    check_admin_referer(‘log-out’); wp_logout();
 *  $redirect_to = !empty( $_REQUEST[‘redirect_to’] ) ? $_REQUEST[‘redirect_to’]:‘
   wp-login.php?loggedout=true’;
    wp_safe_redirect( $redirect_to ); exit();
 * break;
 * case ‘lostpassword’ :
    case ‘retrievepassword’ :
 *  if ( $http_post ) {
    $errors = retrieve_password(); if ( !is_wp_error($errors)){
   $redirect_to = !empty( $_REQUEST[‘redirect_to’] ) ? $_REQUEST[‘redirect_to’] :‘
   wp-login.php?checkemail=confirm’; wp_safe_redirect( $redirect_to ); exit(); }}
 *  if ( isset($_GET[‘error’]) && ‘invalidkey’ == $_GET[‘error’] ) $errors->add(‘
   invalidkey’, __(‘Sorry, that key does not appear to be valid.’));
    $redirect_to
   = apply_filters( ‘lostpassword_redirect’, !empty( $_REQUEST[‘redirect_to’] ) ?
   $_REQUEST[‘redirect_to’] : ” );
 *  do_action(‘lost_password’);
    login_header(__(‘Lost Password’), ‘<p class=”message”
   >’ . __(‘Please enter your username or email address. You will receive a link
   to create a new password via email.’) . ‘</p>’, $errors);
 *  $user_login = isset($_POST[‘user_login’]) ? stripslashes($_POST[‘user_login’]):”;
 * ?>
 * <form name=”lostpasswordform” id=”lostpasswordform” action=”<?php echo site_url(‘
   wp-login.php?action=lostpassword’, ‘login_post’) ?>” method=”post”>
    <p> <label
   ><?php _e(‘Username or E-mail:’) ?> <input type=”text” name=”user_login” id=”
   user_login” class=”input” value=”<?php echo esc_attr($user_login); ?>” size=”
   20″ tabindex=”10″ /></label> </p> <?php do_action(‘lostpassword_form’); ?> <input
   type=”hidden” name=”redirect_to” value=”<?php echo esc_attr( $redirect_to ); ?
   >” /> <p class=”submit”><input type=”submit” name=”wp-submit” id=”wp-submit” 
   class=”button-primary” value=”<?php esc_attr_e(‘Get New Password’); ?>” tabindex
   =”100″ /></p> </form>
 * <p id=”nav”>
    “><?php _e(‘Log in’) ?>
   
    <?php if (get_option(‘users_can_register’)):?
   > | “><?php _e(‘Register’) ?> <?php endif; ?> </p>
 * <?php
    login_footer(‘user_login’); break;
 * case ‘resetpass’ :
    case ‘rp’ : $user = check_password_reset_key($_GET[‘key’],
   $_GET[‘login’]);
 *  if ( is_wp_error($user) ) {
    wp_redirect( site_url(‘wp-login.php?action=lostpassword&
   error=invalidkey’) ); exit; }
 *  $errors = ”;
 *  if ( isset($_POST[‘pass1’]) && $_POST[‘pass1’] != $_POST[‘pass2’] ) {
    $errors
   = new WP_Error(‘password_reset_mismatch’, __(‘The passwords do not match.’));}
   elseif ( isset($_POST[‘pass1’]) && !empty($_POST[‘pass1’]) ) { reset_password(
   $user, $_POST[‘pass1’]); login_header(__(‘Password Reset’), ‘<p class=”message
   reset-pass”>’ . __(‘Your password has been reset.’) . ‘ [‘ . __(‘Log in’) . ‘](https://wordpress.org/support/users/problemsolver/replies/&apos; . site_url(&apos;wp-login.php&apos;, &apos;login&apos;) . &apos;?output_format=md)
   </p>’); login_footer(); exit; }
 *  wp_enqueue_script(‘utils’);
    wp_enqueue_script(‘user-profile’);
 *  login_header(__(‘Reset Password’), ‘<p class=”message reset-pass”>’ . __(‘Enter
   your new password below.’) . ‘</p>’, $errors );
 * ?>
    <form name=”resetpassform” id=”resetpassform” action=”<?php echo site_url(‘
   wp-login.php?action=resetpass&key=’ . urlencode($_GET[‘key’]) . ‘&login=’ . urlencode(
   $_GET[‘login’]), ‘login_post’) ?>” method=”post”> <input type=”hidden” id=”user_login”
   value=”<?php echo esc_attr( $_GET[‘login’] ); ?>” autocomplete=”off” />
 *  <p>
    <label><?php _e(‘New password’) ?> <input type=”password” name=”pass1″ 
   id=”pass1″ class=”input” size=”20″ value=”” autocomplete=”off” /></label> </p
   > <p> <label><?php _e(‘Confirm new password’) ?> <input type=”password” name=”
   pass2″ id=”pass2″ class=”input” size=”20″ value=”” autocomplete=”off” /></label
   > </p>
 *  <div id=”pass-strength-result” class=”hide-if-no-js”><?php _e(‘Strength indicator’);?
   ></div>
    <p class=”description indicator-hint”><?php _e(‘Hint: The password should
   be at least seven characters long. To make it stronger, use upper and lower case
   letters, numbers and symbols like ! ” ? $ % ^ & ).’); ?></p>
 *  <br class=”clear” />
    <p class=”submit”><input type=”submit” name=”wp-submit”
   id=”wp-submit” class=”button-primary” value=”<?php esc_attr_e(‘Reset Password’);?
   >” tabindex=”100″ /></p> </form>
 * <p id=”nav”>
    “><?php _e(‘Log in’) ?>
   
    <?php if (get_option(‘users_can_register’)):?
   > | “><?php _e(‘Register’) ?> <?php endif; ?> </p>
 * <?php
    login_footer(‘user_pass’); break;
 * case ‘register’ :
    if ( is_multisite() ) { // Multisite uses wp-signup.php wp_redirect(
   apply_filters( ‘wp_signup_location’, site_url(‘wp-signup.php’) ) ); exit; }
 *  if ( !get_option(‘users_can_register’) ) {
    wp_redirect( site_url(‘wp-login.
   php?registration=disabled’) ); exit(); }
 *  $user_login = ”;
    $user_email = ”; if ( $http_post ) { $user_login = $_POST[‘
   user_login’]; $user_email = $_POST[‘user_email’]; $errors = register_new_user(
   $user_login, $user_email); if ( !is_wp_error($errors) ) { $redirect_to = !empty(
   $_POST[‘redirect_to’] ) ? $_POST[‘redirect_to’] : ‘wp-login.php?checkemail=registered’;
   wp_safe_redirect( $redirect_to ); exit(); } }
 *  $redirect_to = apply_filters( ‘registration_redirect’, !empty( $_REQUEST[‘redirect_to’])?
   $_REQUEST[‘redirect_to’] : ” );
    login_header(__(‘Registration Form’), ‘<p class
   =”message register”>’ . __(‘Register For This Site’) . ‘</p>’, $errors); ?>
 * <form name=”registerform” id=”registerform” action=”<?php echo site_url(‘wp-login.
   php?action=register’, ‘login_post’) ?>” method=”post”>
    <p> <label><?php _e(‘
   Username’) ?> <input type=”text” name=”user_login” id=”user_login” class=”input”
   value=”<?php echo esc_attr(stripslashes($user_login)); ?>” size=”20″ tabindex
   =”10″ /></label> </p> <p> <label><?php _e(‘E-mail’) ?> <input type=”text” name
   =”user_email” id=”user_email” class=”input” value=”<?php echo esc_attr(stripslashes(
   $user_email)); ?>” size=”25″ tabindex=”20″ /></label> </p> <?php do_action(‘register_form’);?
   > <p id=”reg_passmail”><?php _e(‘A password will be e-mailed to you.’) ?></p>
   <br class=”clear” /> <input type=”hidden” name=”redirect_to” value=”<?php echo
   esc_attr( $redirect_to ); ?>” /> <p class=”submit”><input type=”submit” name=”
   wp-submit” id=”wp-submit” class=”button-primary” value=”<?php esc_attr_e(‘Register’);?
   >” tabindex=”100″ /></p> </form>
 * <p id=”nav”>
    “><?php _e(‘Log in’) ?>
    |
    ” title=”<?php _e(‘Password Lost and
   Found’) ?>”><?php _e(‘Lost your password?’) ?>
   
    </p>
 * <?php
    login_footer(‘user_login’); break;
 * case ‘login’ :
    default: $secure_cookie = ”; $interim_login = isset($_REQUEST[‘
   interim-login’]);
 *  // If the user wants ssl but the session is not ssl, force a secure cookie.
   
   if ( !empty($_POST[‘log’]) && !force_ssl_admin() ) { $user_name = sanitize_user(
   $_POST[‘log’]); if ( $user = get_userdatabylogin($user_name) ) { if ( get_user_option(‘
   use_ssl’, $user->ID) ) { $secure_cookie = true; force_ssl_admin(true); } } }
 *  if ( isset( $_REQUEST[‘redirect_to’] ) ) {
    $redirect_to = $_REQUEST[‘redirect_to’];//
   Redirect to https if user wants ssl if ( $secure_cookie && false !== strpos($
   redirect_to, ‘wp-admin’) ) $redirect_to = preg_replace(‘|^http://|’, ‘[https://&#8217](https://&#8217);,
   $redirect_to); } else { $redirect_to = admin_url(); }
 *  $reauth = empty($_REQUEST[‘reauth’]) ? false : true;
 *  // If the user was redirected to a secure login form from a non-secure admin
   page, and secure login is required but secure admin is not, then don’t use a 
   secure
    // cookie and redirect back to the referring non-secure admin page. This
   allows logins to always be POSTed over SSL while allowing the user to choose 
   visiting // the admin via http or https. if ( !$secure_cookie && is_ssl() && 
   force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, ‘https’))&&(
   0 === strpos($redirect_to, ‘http’) ) ) $secure_cookie = false;
 *  $user = wp_signon(”, $secure_cookie);
 *  $redirect_to = apply_filters(‘login_redirect’, $redirect_to, isset( $_REQUEST[‘
   redirect_to’] ) ? $_REQUEST[‘redirect_to’] : ”, $user);
 *  if ( !is_wp_error($user) && !$reauth ) {
    if ( $interim_login ) { $message =‘
   <p class=”message”>’ . __(‘You have logged in successfully.’) . ‘</p>’; login_header(”,
   $message ); ?> <script type=”text/javascript”>setTimeout( function(){window.close()},
   8000);</script> <p class=”alignright”> <input type=”button” class=”button-primary”
   value=”<?php esc_attr_e(‘Close’); ?>” onclick=”window.close()” /></p> </div></
   body></html> <?php exit; }
 *  if ( ( empty( $redirect_to ) || $redirect_to == ‘wp-admin/’ || $redirect_to 
   == admin_url() ) ) {
    // If the user doesn’t belong to a blog, send them to user
   admin. If the user can’t edit posts, send them to their profile. if ( is_multisite()&&!
   get_active_blog_for_user($user->id) ) $redirect_to = user_admin_url(); elseif(
   is_multisite() && !$user->has_cap(‘read’) ) $redirect_to = get_dashboard_url(
   $user->id ); elseif ( !$user->has_cap(‘edit_posts’) ) $redirect_to = admin_url(‘
   profile.php’); } wp_safe_redirect($redirect_to); exit(); }
 *  $errors = $user;
    // Clear errors if loggedout is set. if ( !empty($_GET[‘loggedout’])
   || $reauth ) $errors = new WP_Error();
 *  // If cookies are disabled we can’t log in even with a valid user+pass
    if (
   isset($_POST[‘testcookie’]) && empty($_COOKIE[TEST_COOKIE]) ) $errors->add(‘test_cookie’,
   __(“**ERROR**: Cookies are blocked or not supported by your browser. You must
   [enable cookies](http://www.google.com/cookies.html) to use WordPress.”));
 *  // Some parts of this script use the main login form to display a message
    if(
   isset($_GET[‘loggedout’]) && TRUE == $_GET[‘loggedout’] ) $errors->add(‘loggedout’,
   __(‘You are now logged out.’), ‘message’); elseif ( isset($_GET[‘registration’])&&‘
   disabled’ == $_GET[‘registration’] ) $errors->add(‘registerdisabled’, __(‘User
   registration is currently not allowed.’)); elseif ( isset($_GET[‘checkemail’])&&‘
   confirm’ == $_GET[‘checkemail’] ) $errors->add(‘confirm’, __(‘Check your e-mail
   for the confirmation link.’), ‘message’); elseif ( isset($_GET[‘checkemail’])&&‘
   newpass’ == $_GET[‘checkemail’] ) $errors->add(‘newpass’, __(‘Check your e-mail
   for your new password.’), ‘message’); elseif ( isset($_GET[‘checkemail’]) && ‘
   registered’ == $_GET[‘checkemail’] ) $errors->add(‘registered’, __(‘Registration
   complete. Please check your e-mail.’), ‘message’); elseif ( $interim_login ) 
   $errors->add(‘expired’, __(‘Your session has expired. Please log-in again.’),‘
   message’);
 *  // Clear any stale cookies.
    if ( $reauth ) wp_clear_auth_cookie();
 *  login_header(__(‘Log In’), ”, $errors);
 *  if ( isset($_POST[‘log’]) )
    $user_login = ( ‘incorrect_password’ == $errors-
   >get_error_code() || ’empty_password’ == $errors->get_error_code() ) ? esc_attr(
   stripslashes($_POST[‘log’])) : ”; $rememberme = ! empty( $_POST[‘rememberme’]);?
   >
 * <form name=”loginform” id=”loginform” action=”<?php echo site_url(‘wp-login.php’,‘
   login_post’) ?>” method=”post”>
    <p> <label><?php _e(‘Username’) ?> <input type
   =”text” name=”log” id=”user_login” class=”input” value=”<?php echo esc_attr($
   user_login); ?>” size=”20″ tabindex=”10″ /></label> </p> <p> <label><?php _e(‘
   Password’) ?> <input type=”password” name=”pwd” id=”user_pass” class=”input” 
   value=”” size=”20″ tabindex=”20″ /></label> </p> <?php do_action(‘login_form’);?
   > <p class=”forgetmenot”><label><input name=”rememberme” type=”checkbox” id=”
   rememberme” value=”forever” tabindex=”90″<?php checked( $rememberme ); ?> /> 
   <?php esc_attr_e(‘Remember Me’); ?></label></p> <p class=”submit”> <input type
   =”submit” name=”wp-submit” id=”wp-submit” class=”button-primary” value=”<?php
   esc_attr_e(‘Log In’); ?>” tabindex=”100″ /> <?php if ( $interim_login ) { ?> 
   <input type=”hidden” name=”interim-login” value=”1″ /> <?php } else { ?> <input
   type=”hidden” name=”redirect_to” value=”<?php echo esc_attr($redirect_to); ?>”/
   > <?php } ?> <input type=”hidden” name=”testcookie” value=”1″ /> </p> </form>
 * <?php if ( !$interim_login ) { ?>
    <p id=”nav”> <?php if ( isset($_GET[‘checkemail’])&&
   in_array( $_GET[‘checkemail’], array(‘confirm’, ‘newpass’) ) ) : ?> <?php elseif(
   get_option(‘users_can_register’) ) : ?> “><?php _e(‘Register’) ?> | ” title=”
   <?php _e(‘Password Lost and Found’) ?>”><?php _e(‘Lost your password?’) ?> <?
   php else : ?> ” title=”<?php _e(‘Password Lost and Found’) ?>”><?php _e(‘Lost
   your password?’) ?> <?php endif; ?> </p> </div> <p id=”backtoblog”>/” title=”
   <?php esc_attr_e(‘Are you lost?’) ?>”><?php printf(__(‘← Back to %s’), get_bloginfo(‘
   title’, ‘display’ )); ?></p> <?php } else { ?> </div> <?php } ?>
 * <script type=”text/javascript”>
    function wp_attempt_focus(){ setTimeout( function(){
   try{ <?php if ( $user_login || $interim_login ) { ?> d = document.getElementById(‘
   user_pass’); d.value = ”; <?php } else { ?> d = document.getElementById(‘user_login’);
   <?php if ( ‘invalid_username’ == $errors->get_error_code() ) { ?> if( d.value!
   = ” ) d.value = ”; <?php } }?> d.focus(); d.select(); } catch(e){} }, 200); }
 * <?php if ( !$error ) { ?>
    wp_attempt_focus(); <?php } ?> if(typeof wpOnload=
   =’function’)wpOnload(); </script> <?php do_action( ‘login_footer’ ); ?> </body
   > </html> <?php
 * break;
    } // end action switch ?>
 *   Forum: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
   
   In reply to: [Log in or Password changed? Help. Cannot log in](https://wordpress.org/support/topic/log-in-or-password-changed-help-cannot-log-in/)
 *  Thread Starter [problemsolver](https://wordpress.org/support/users/problemsolver/)
 * (@problemsolver)
 * [15 years, 1 month ago](https://wordpress.org/support/topic/log-in-or-password-changed-help-cannot-log-in/#post-1987530)
 * And this is the admin.php file. Again, I don’t know if this is of use. I’m not
   a coder (a template user). I have no idea if it shows log in details, but I really
   do need to be able to access my site for maintenance and obviously as someone
   has changed my log in details. Thanks.
 * <?php
    /** * WordPress Administration Bootstrap * * [@package](https://wordpress.org/support/users/package/)
   WordPress * @subpackage Administration */
 * /**
    * In WordPress Administration Panels * * [@since](https://wordpress.org/support/users/since/)
   2.3.2 */ if ( ! defined(‘WP_ADMIN’) ) define(‘WP_ADMIN’, TRUE);
 * if ( ! defined(‘WP_NETWORK_ADMIN’) )
    define(‘WP_NETWORK_ADMIN’, FALSE);
 * if ( ! defined(‘WP_USER_ADMIN’) )
    define(‘WP_USER_ADMIN’, FALSE);
 * if ( ! WP_NETWORK_ADMIN && ! WP_USER_ADMIN ) {
    define(‘WP_BLOG_ADMIN’, TRUE);}
 * if ( isset($_GET[‘import’]) && !defined(‘WP_LOAD_IMPORTERS’) )
    define(‘WP_LOAD_IMPORTERS’,
   true);
 * require_once(dirname(dirname(__FILE__)) . ‘/wp-load.php’);
 * if ( get_option(‘db_upgraded’) ) {
    $wp_rewrite->flush_rules(); update_option(‘
   db_upgraded’, false );
 *  /**
    * Runs on the next page load after successful upgrade * * [@since](https://wordpress.org/support/users/since/)
   2.8 */ do_action(‘after_db_upgrade’); } elseif ( get_option(‘db_version’) != 
   $wp_db_version ) { if ( !is_multisite() ) { wp_redirect(admin_url(‘upgrade.php?
   _wp_http_referer=’ . urlencode(stripslashes($_SERVER[‘REQUEST_URI’])))); exit;}
   elseif ( apply_filters( ‘do_mu_upgrade’, true ) ) { /** * On really small MU 
   installs run the upgrader every time, * else run it less often to reduce load.**
   [@since](https://wordpress.org/support/users/since/) 2.8.4b */ $c = get_blog_count();
   if ( $c <= 50 || ( $c > 50 && mt_rand( 0, (int)( $c / 50 ) ) == 1 ) ) { require_once(
   ABSPATH . WPINC . ‘/http.php’ ); $response = wp_remote_get( admin_url( ‘upgrade.
   php?step=1’ ), array( ‘timeout’ => 120, ‘httpversion’ => ‘1.1’ ) ); do_action(‘
   after_mu_upgrade’, $response ); unset($response); } unset($c); } }
 * require_once(ABSPATH . ‘wp-admin/includes/admin.php’);
 * auth_redirect();
 * nocache_headers();
 * // Schedule trash collection
    if ( !wp_next_scheduled(‘wp_scheduled_delete’) &&!
   defined(‘WP_INSTALLING’) ) wp_schedule_event(time(), ‘daily’, ‘wp_scheduled_delete’);
 * set_screen_options();
 * $date_format = get_option(‘date_format’);
    $time_format = get_option(‘time_format’);
 * wp_reset_vars(array(‘profile’, ‘redirect’, ‘redirect_url’, ‘a’, ‘text’, ‘trackback’,‘
   pingback’));
 * wp_enqueue_script( ‘common’ );
    wp_enqueue_script( ‘jquery-color’ );
 * $editing = false;
 * if ( isset($_GET[‘page’]) ) {
    $plugin_page = stripslashes($_GET[‘page’]); $plugin_page
   = plugin_basename($plugin_page); }
 * if ( isset($_GET[‘post_type’]) )
    $typenow = sanitize_key($_GET[‘post_type’]);
   else $typenow = ”;
 * if ( isset($_GET[‘taxonomy’]) )
    $taxnow = sanitize_key($_GET[‘taxonomy’]); else
   $taxnow = ”;
 * if ( WP_NETWORK_ADMIN )
    require(ABSPATH . ‘wp-admin/network/menu.php’); elseif(
   WP_USER_ADMIN ) require(ABSPATH . ‘wp-admin/user/menu.php’); else require(ABSPATH.‘
   wp-admin/menu.php’);
 * if ( current_user_can( ‘manage_options’ ) )
    @ini_set( ‘memory_limit’, apply_filters(‘
   admin_memory_limit’, ‘256M’ ) );
 * do_action(‘admin_init’);
 * if ( isset($plugin_page) ) {
    if ( !empty($typenow) ) $the_parent = $pagenow .‘?
   post_type=’ . $typenow; else $the_parent = $pagenow; if ( ! $page_hook = get_plugin_page_hook(
   $plugin_page, $the_parent) ) { $page_hook = get_plugin_page_hook($plugin_page,
   $plugin_page); // backwards compatibility for plugins using add_management_page
   if ( empty( $page_hook ) && ‘edit.php’ == $pagenow && ” != get_plugin_page_hook(
   $plugin_page, ‘tools.php’) ) { // There could be plugin specific params on the
   URL, so we need the whole query string if ( !empty($_SERVER[ ‘QUERY_STRING’ ]))
   $query_string = $_SERVER[ ‘QUERY_STRING’ ]; else $query_string = ‘page=’ . $plugin_page;
   wp_redirect( admin_url(‘tools.php?’ . $query_string) ); exit; } } unset($the_parent);}
 * $hook_suffix = ”;
    if ( isset($page_hook) ) $hook_suffix = $page_hook; else if(
   isset($plugin_page) ) $hook_suffix = $plugin_page; else if ( isset($pagenow) )
   $hook_suffix = $pagenow;
 * set_current_screen();
 * // Handle plugin admin pages.
    if ( isset($plugin_page) ) { if ( $page_hook ){
   do_action(‘load-‘ . $page_hook); if (! isset($_GET[‘noheader’])) require_once(
   ABSPATH . ‘wp-admin/admin-header.php’);
 *  do_action($page_hook);
    } else { if ( validate_file($plugin_page) ) wp_die(__(‘
   Invalid plugin page’));
 *  if ( !( file_exists(WP_PLUGIN_DIR . “/$plugin_page”) && is_file(WP_PLUGIN_DIR.“/
   $plugin_page”) ) && !( file_exists(WPMU_PLUGIN_DIR . “/$plugin_page”) && is_file(
   WPMU_PLUGIN_DIR . “/$plugin_page”) ) )
    wp_die(sprintf(__(‘Cannot load %s.’),
   htmlentities($plugin_page)));
 *  do_action(‘load-‘ . $plugin_page);
 *  if ( !isset($_GET[‘noheader’]))
    require_once(ABSPATH . ‘wp-admin/admin-header.
   php’);
 *  if ( file_exists(WPMU_PLUGIN_DIR . “/$plugin_page”) )
    include(WPMU_PLUGIN_DIR.“/
   $plugin_page”); else include(WP_PLUGIN_DIR . “/$plugin_page”); }
 *  include(ABSPATH . ‘wp-admin/admin-footer.php’);
 *  exit();
    } else if (isset($_GET[‘import’])) {
 *  $importer = $_GET[‘import’];
 *  if ( ! current_user_can(‘import’) )
    wp_die(__(‘You are not allowed to import.’));
 *  if ( validate_file($importer) ) {
    wp_redirect( admin_url( ‘import.php?invalid
   =’ . $importer ) ); exit; }
 *  // Allow plugins to define importers as well
    if ( !isset($wp_importers) || !
   isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2])){
   if (! file_exists(ABSPATH . “wp-admin/import/$importer.php”)) { wp_redirect( 
   admin_url( ‘import.php?invalid=’ . $importer ) ); exit; } include(ABSPATH . “
   wp-admin/import/$importer.php”); }
 *  $parent_file = ‘tools.php’;
    $submenu_file = ‘import.php’; $title = __(‘Import’);
 *  if (! isset($_GET[‘noheader’]))
    require_once(ABSPATH . ‘wp-admin/admin-header.
   php’);
 *  require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
 *  define(‘WP_IMPORTING’, true);
 *  if ( apply_filters( ‘force_filtered_html_on_import’, false ) )
    kses_init_filters();//
   Always filter imported data with kses on multisite.
 *  call_user_func($wp_importers[$importer][2]);
 *  include(ABSPATH . ‘wp-admin/admin-footer.php’);
 *  // Make sure rules are flushed
    global $wp_rewrite; $wp_rewrite->flush_rules(
   false);
 *  exit();
    } else { do_action(“load-$pagenow”); // Backwards compatibility with
   old load-page-new.php, load-page.php, // and load-categories.php actions. if (
   $typenow == ‘page’ ) { if ( $pagenow == ‘post-new.php’ ) do_action( ‘load-page-
   new.php’ ); elseif ( $pagenow == ‘post.php’ ) do_action( ‘load-page.php’ ); }
   elseif ( $pagenow == ‘edit-tags.php’ ) { if ( $taxnow == ‘category’ ) do_action(‘
   load-categories.php’ ); elseif ( $taxnow == ‘link_category’ ) do_action( ‘load-
   edit-link-categories.php’ ); } }
 * if ( !empty($_REQUEST[‘action’]) )
    do_action(‘admin_action_’ . $_REQUEST[‘action’]);
 * ?>
 *   Forum: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
   
   In reply to: [Log in or Password changed? Help. Cannot log in](https://wordpress.org/support/topic/log-in-or-password-changed-help-cannot-log-in/)
 *  Thread Starter [problemsolver](https://wordpress.org/support/users/problemsolver/)
 * (@problemsolver)
 * [15 years, 1 month ago](https://wordpress.org/support/topic/log-in-or-password-changed-help-cannot-log-in/#post-1987529)
 * I copied the users.php file from /public_html/wp-admin. Not sure if it helps.
   Any comments appreciated.
 * <?php
    /** * Users administration panel. * * [@package](https://wordpress.org/support/users/package/)
   WordPress * @subpackage Administration */
 * /** WordPress Administration Bootstrap */
    require_once( ‘./admin.php’ );
 * if ( ! current_user_can( ‘list_users’ ) )
    wp_die( __( ‘Cheatin’ uh?’ ) );
 * $wp_list_table = _get_list_table(‘WP_Users_List_Table’);
    $pagenum = $wp_list_table-
   >get_pagenum(); $title = __(‘Users’); $parent_file = ‘users.php’;
 * add_screen_option( ‘per_page’, array(‘label’ => _x( ‘Users’, ‘users per page (
   screen options)’ )) );
 * // contextual help – choose Help on the top right of admin panel to preview this.
   
   add_contextual_help($current_screen, ‘<p>’ . __(‘This screen lists all the existing
   users for your site. Each user has one of five defined roles as set by the site
   admin: Site Administrator, Editor, Author, Contributor, or Subscriber. Users 
   with roles other than Administrator will see fewer options in the dashboard navigation
   when they are logged in, based on their role.’) . ‘</p>’ . ‘<p>’ . __(‘You can
   customize the display of information on this screen as you can on other screens,
   by using the Screen Options tab and the on-screen filters.’) . ‘</p>’ . ‘<p>’.
   __(‘To add a new user for your site, click the Add New button at the top of the
   screen or Add New in the Users menu section.’) . ‘</p>’ . ‘<p>**‘ . __(‘For more
   information:’) . ‘**</p>’ . ‘<p>’ . __(‘[Documentation on Managing Users](http://codex.wordpress.org/Users_Users_SubPanel)‘).‘
   </p>’ . ‘<p>’ . __(‘[Descriptions of Roles and Capabilities](http://codex.wordpress.org/Roles_and_Capabilities)‘).‘
   </p>’ . ‘<p>’ . __(‘[Support Forums](http://wordpress.org/support/)‘) . ‘</p>’);
 * if ( empty($_REQUEST) ) {
    $referer = ‘<input type=”hidden” name=”wp_http_referer”
   value=”‘. esc_attr(stripslashes($_SERVER[‘REQUEST_URI’])) . ‘” />’; } elseif (
   isset($_REQUEST[‘wp_http_referer’]) ) { $redirect = remove_query_arg(array(‘wp_http_referer’,‘
   updated’, ‘delete_count’), stripslashes($_REQUEST[‘wp_http_referer’])); $referer
   = ‘<input type=”hidden” name=”wp_http_referer” value=”‘ . esc_attr($redirect).‘”/
   >’; } else { $redirect = ‘users.php’; $referer = ”; }
 * $update = ”;
 * switch ( $wp_list_table->current_action() ) {
 * /* Bulk Dropdown menu Role changes */
    case ‘promote’: check_admin_referer(‘bulk-
   users’);
 *  if ( ! current_user_can( ‘promote_users’ ) )
    wp_die( __( ‘You can’t edit that
   user.’ ) );
 *  if ( empty($_REQUEST[‘users’]) ) {
    wp_redirect($redirect); exit(); }
 *  $editable_roles = get_editable_roles();
    if ( empty( $editable_roles[$_REQUEST[‘
   new_role’]] ) ) wp_die(__(‘You can’t give users that role.’));
 *  $userids = $_REQUEST[‘users’];
    $update = ‘promote’; foreach ( $userids as $
   id ) { $id = (int) $id;
 *  if ( ! current_user_can(‘promote_user’, $id) )
    wp_die(__(‘You can’t edit that
   user.’)); // The new role of the current user must also have promote_users caps
   if ( $id == $current_user->ID && !$wp_roles->role_objects[$_REQUEST[‘new_role’]]-
   >has_cap(‘promote_users’) ) { $update = ‘err_admin_role’; continue; }
 *  // If the user doesn’t already belong to the blog, bail.
    if ( is_multisite()&&!
   is_user_member_of_blog( $id ) ) wp_die(__(‘Cheatin’ uh?’));
 *  $user = new WP_User($id);
    $user->set_role($_REQUEST[‘new_role’]); }
 *  wp_redirect(add_query_arg(‘update’, $update, $redirect));
    exit();
 * break;
 * case ‘dodelete’:
    if ( is_multisite() ) wp_die( __(‘User deletion is not allowed
   from this screen.’) );
 *  check_admin_referer(‘delete-users’);
 *  if ( empty($_REQUEST[‘users’]) ) {
    wp_redirect($redirect); exit(); }
 *  if ( ! current_user_can( ‘delete_users’ ) )
    wp_die(__(‘You can’t delete users.’));
 *  $userids = $_REQUEST[‘users’];
    $update = ‘del’; $delete_count = 0;
 *  foreach ( (array) $userids as $id) {
    $id = (int) $id;
 *  if ( ! current_user_can( ‘delete_user’, $id ) )
    wp_die(__( ‘You can’t delete
   that user.’ ) );
 *  if ( $id == $current_user->ID ) {
    $update = ‘err_admin_del’; continue; } switch(
   $_REQUEST[‘delete_option’] ) { case ‘delete’: if ( current_user_can(‘delete_user’,
   $id) ) wp_delete_user($id); break; case ‘reassign’: if ( current_user_can(‘delete_user’,
   $id) ) wp_delete_user($id, $_REQUEST[‘reassign_user’]); break; } ++$delete_count;}
 *  $redirect = add_query_arg( array(‘delete_count’ => $delete_count, ‘update’ =
   > $update), $redirect);
    wp_redirect($redirect); exit();
 * break;
 * case ‘delete’:
    if ( is_multisite() ) wp_die( __(‘User deletion is not allowed
   from this screen.’) );
 *  check_admin_referer(‘bulk-users’);
 *  if ( empty($_REQUEST[‘users’]) && empty($_REQUEST[‘user’]) ) {
    wp_redirect(
   $redirect); exit(); }
 *  if ( ! current_user_can( ‘delete_users’ ) )
    $errors = new WP_Error( ‘edit_users’,
   __( ‘You can’t delete users.’ ) );
 *  if ( empty($_REQUEST[‘users’]) )
    $userids = array(intval($_REQUEST[‘user’]));
   else $userids = $_REQUEST[‘users’];
 *  include (‘admin-header.php’);
    ?> <form action=”” method=”post” name=”updateusers”
   id=”updateusers”> <?php wp_nonce_field(‘delete-users’) ?> <?php echo $referer;?
   >
 * <div class=”wrap”>
    <?php screen_icon(); ?> <h2><?php _e(‘Delete Users’); ?></
   h2> <p><?php _e(‘You have specified these users for deletion:’); ?></p>
    -  <?php
       $go_delete = false; foreach ( (array) $userids as $id ) { $id = (int)
      $id; $user = new WP_User($id); if ( $id == $current_user->ID ) { echo ”
    - ” . sprintf(__(‘ID #%1s: %2s **The current user will not be deleted.**‘), 
      $id, $user->user_login) . “
    - \n”;
       } else { echo ”
    - <input type=\”hidden\” name=\”users[]\” value=\”” . esc_attr($id) . “\” />”.
      sprintf(__(‘ID #%1s: %2s’), $id, $user->user_login) . “
    - \n”;
       $go_delete = true; } } ?>
 * <?php if ( $go_delete ) : ?>
    <fieldset><p><legend><?php _e(‘What should be done
   with posts and links owned by this user?’); ?></legend></p> <ul style=”list-style:
   none;”>
    - <label><input type=”radio” id=”delete_option0″ name=”delete_option” value=”
      delete” checked=”checked” />
       <?php _e(‘Delete all posts and links.’); ?></
      label>
    - <input type=”radio” id=”delete_option1″ name=”delete_option” value=”reassign”/
      >
       <?php echo ‘<label for=”delete_option1″>’.__(‘Attribute all posts and links
      to:’).'</label>’; wp_dropdown_users( array( ‘name’ => ‘reassign_user’, ‘exclude’
      => array_diff( $userids, array($current_user->ID) ) ) ); ?>
    -  </fieldset>
       <input type=”hidden” name=”action” value=”dodelete” /> <?php
      submit_button( __(‘Confirm Deletion’), ‘secondary’ ); ?> <?php else : ?> <
      p><?php _e(‘There are no valid users selected for deletion.’); ?></p> <?php
      endif; ?> </div> </form> <?php
    - break;
    - case ‘doremove’:
       check_admin_referer(‘remove-users’);
    -  if ( ! is_multisite() )
       wp_die( __( ‘You can’t remove users.’ ) );
    -  if ( empty($_REQUEST[‘users’]) ) {
       wp_redirect($redirect); exit; }
    -  if ( ! current_user_can( ‘remove_users’ ) )
       wp_die( __( ‘You can’t remove
      users.’ ) );
    -  $userids = $_REQUEST[‘users’];
    -  $update = ‘remove’;
       foreach ( $userids as $id ) { $id = (int) $id; if ( 
      $id == $current_user->id && !is_super_admin() ) { $update = ‘err_admin_remove’;
      continue; } if ( !current_user_can(‘remove_user’, $id) ) { $update = ‘err_admin_remove’;
      continue; } remove_user_from_blog($id, $blog_id); }
    -  $redirect = add_query_arg( array(‘update’ => $update), $redirect);
       wp_redirect(
      $redirect); exit;
    - break;
    - case ‘remove’:
    -  check_admin_referer(‘bulk-users’);
    -  if ( ! is_multisite() )
       wp_die( __( ‘You can’t remove users.’ ) );
    -  if ( empty($_REQUEST[‘users’]) && empty($_REQUEST[‘user’]) ) {
       wp_redirect(
      $redirect); exit(); }
    -  if ( !current_user_can(‘remove_users’) )
       $error = new WP_Error(‘edit_users’,
      __(‘You can’t remove users.’));
    -  if ( empty($_REQUEST[‘users’]) )
       $userids = array(intval($_REQUEST[‘user’]));
      else $userids = $_REQUEST[‘users’];
    -  include (‘admin-header.php’);
       ?> <form action=”” method=”post” name=”updateusers”
      id=”updateusers”> <?php wp_nonce_field(‘remove-users’) ?> <?php echo $referer;?
      >
    - <div class=”wrap”>
       <?php screen_icon(); ?> <h2><?php _e(‘Remove Users from
      Site’); ?></h2> <p><?php _e(‘You have specified these users for removal:’);?
      ></p>
 *  -  <?php
       $go_remove = false; foreach ( $userids as $id ) { $id = (int) $id;
      $user = new WP_User($id); if ( $id == $current_user->id && !is_super_admin()){
      echo ”
    - ” . sprintf(__(‘ID #%1s: %2s **The current user will not be removed.**‘), 
      $id, $user->user_login) . “
    - \n”;
       } elseif ( !current_user_can(‘remove_user’, $id) ) { echo ”
    - ” . sprintf(__(‘ID #%1s: %2s **You don\’t have permission to remove this user.**‘),
      $id, $user->user_login) . “
    - \n”;
       } else { echo ”
    - <input type=\”hidden\” name=\”users[]\” value=\”{$id}\” />” . sprintf(__(‘
      ID #%1s: %2s’), $id, $user->user_login) . “
    - \n”;
       $go_remove = true; } } ?> <?php if ( $go_remove ) : ?> <input type=”
      hidden” name=”action” value=”doremove” /> <?php submit_button( __(‘Confirm
      Removal’), ‘secondary’ ); ?> <?php else : ?> <p><?php _e(‘There are no valid
      users selected for removal.’); ?></p> <?php endif; ?> </div> </form> <?php
    - break;
    - default:
    -  if ( !empty($_GET[‘_wp_http_referer’]) ) {
       wp_redirect(remove_query_arg(
      array(‘_wp_http_referer’, ‘_wpnonce’), stripslashes($_SERVER[‘REQUEST_URI’])));
      exit; }
    -  $wp_list_table->prepare_items();
       $total_pages = $wp_list_table->get_pagination_arg(‘
      total_pages’ ); if ( $pagenum > $total_pages && $total_pages > 0 ) { wp_redirect(
      add_query_arg( ‘paged’, $total_pages ) ); exit; } include(‘./admin-header.
      php’);
    -  $messages = array();
       if ( isset($_GET[‘update’]) ) : switch($_GET[‘update’]){
      case ‘del’: case ‘del_many’: $delete_count = isset($_GET[‘delete_count’]) ?(
      int) $_GET[‘delete_count’] : 0; $messages[] = ‘<div id=”message” class=”updated”
      ><p>’ . sprintf(_n(‘%s user deleted’, ‘%s users deleted’, $delete_count), 
      $delete_count) . ‘</p></div>’; break; case ‘add’: $messages[] = ‘<div id=”
      message” class=”updated”><p>’ . __(‘New user created.’) . ‘</p></div>’; break;
      case ‘promote’: $messages[] = ‘<div id=”message” class=”updated”><p>’ . __(‘
      Changed roles.’) . ‘</p></div>’; break; case ‘err_admin_role’: $messages[]
      = ‘<div id=”message” class=”error”><p>’ . __(‘The current user’s role must
      have user editing capabilities.’) . ‘</p></div>’; $messages[] = ‘<div id=”
      message” class=”updated”><p>’ . __(‘Other user roles have been changed.’) .‘
      </p></div>’; break; case ‘err_admin_del’: $messages[] = ‘<div id=”message”
      class=”error”><p>’ . __(‘You can’t delete the current user.’) . ‘</p></div
      >’; $messages[] = ‘<div id=”message” class=”updated”><p>’ . __(‘Other users
      have been deleted.’) . ‘</p></div>’; break; case ‘remove’: $messages[] = ‘
      <div id=”message” class=”updated fade”><p>’ . __(‘User removed from this site.’).‘
      </p></div>’; break; case ‘err_admin_remove’: $messages[] = ‘<div id=”message”
      class=”error”><p>’ . __(“You can’t remove the current user.”) . ‘</p></div
      >’; $messages[] = ‘<div id=”message” class=”updated fade”><p>’ . __(‘Other
      users have been removed.’) . ‘</p></div>’; break; } endif; ?>
    - <?php if ( isset($errors) && is_wp_error( $errors ) ) : ?>
       <div class=”error”
      >
 *  -  <?php
       foreach ( $errors->get_error_messages() as $err ) echo ”
    - $err
    - \n”;
       ?>
 *  </div>
    <?php endif;
 * if ( ! empty($messages) ) {
    foreach ( $messages as $msg ) echo $msg; } ?>
 * <div class=”wrap”>
    <?php screen_icon(); ?> <h2> <?php echo esc_html( $title );
   if ( current_user_can( ‘create_users’ ) ) { ?> [<?php echo esc_html_x( ‘Add New’, ‘user’ ); ?>](https://wordpress.org/support/users/problemsolver/replies/user-new.php?output_format=md)
   <?php } elseif ( is_multisite() && current_user_can( ‘promote_users’ ) ) { ?>
   [<?php echo esc_html_x( ‘Add Existing’, ‘user’ ); ?>](https://wordpress.org/support/users/problemsolver/replies/user-new.php?output_format=md)
   <?php }
 * if ( $usersearch )
    printf( ‘<span class=”subtitle”>’ . __(‘Search results for“%
   s”’) . ‘</span>’, esc_html( $usersearch ) ); ?> </h2>
 * <?php $wp_list_table->views(); ?>
 * <form action=”” method=”get”>
 * <?php $wp_list_table->search_box( __( ‘Search Users’ ), ‘user’ ); ?>
 * <?php $wp_list_table->display(); ?>
    </form>
 * <?php
    if ( is_multisite() ) { foreach ( array(‘user_login’ => ‘user_login’, ‘
   first_name’ => ‘user_firstname’, ‘last_name’ => ‘user_lastname’, ’email’ => ‘
   user_email’, ‘url’ => ‘user_uri’, ‘role’ => ‘user_role’) as $formpost => $var){
   $var = ‘new_’ . $var; $$var = isset($_REQUEST[$formpost]) ? esc_attr(stripslashes(
   $_REQUEST[$formpost])) : ”; } unset($name); } ?>
 * <br class=”clear” />
    </div> <?php break;
 * } // end of the $doaction switch
 * include(‘./admin-footer.php’);

Viewing 3 replies - 1 through 3 (of 3 total)