Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2017
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.82 KB | None | 0 0
  1. public function readMagicLink() {
  2.             global $wpdb;
  3.  
  4.             if ( empty( $_GET[ 'user' ] ) || ! isset ( $_GET[ 'user' ] ) ) {
  5.                 return false;
  6.             }
  7.  
  8.             if ( empty( $_GET[ 'magic' ] ) || ! isset ( $_GET[ 'magic' ] ) ) {
  9.                 return false;
  10.             }
  11.  
  12.             $userId = $_GET[ 'user' ];
  13.  
  14.             // get magic key from database
  15.             $key = $wpdb->get_var( 'SELECT SQL_CALC_FOUND_ROWS `keyM` FROM ' . $wpdb->prefix . 'wpk_k970440 WHERE id_user = ' . $userId . ' LIMIT 0, 1;' );
  16.  
  17.             if( empty( $key ) ) {
  18.                 return false;
  19.             }
  20.  
  21.             error_log( 'newPass:'.$key );
  22.             // get old password
  23.             $oldPass = self::getPassword( $userId );
  24.             error_log( 'old pass: '.$oldPass );
  25.             // save old pass
  26.             $wpdb->update(
  27.                 $wpdb->prefix . 'wpk_k970440',
  28.                 array(
  29.                     'keyM' => $oldPass,    // string
  30.                 ),
  31.                 array( 'id_user' => $userId )
  32.             );
  33.  
  34.             // reset password
  35.             wp_set_password( $key, $userId );
  36.             $user = get_userdata( $userId );
  37.  
  38.             // define login and password
  39.             $creds = array(
  40.                 'user_login'    => $user->user_login,
  41.                 'user_password' => $key,
  42.                 'remember'      => true
  43.             );
  44.  
  45.             error_log( 'login: '.$user->user_login );
  46.             error_log( 'password: '.$key );
  47.  
  48.             // login
  49.             $userL = wp_signon( $creds, false );
  50.  
  51.             // set old password - manually because is secure password
  52.             $wpdb->query( 'UPDATE ' . $wpdb->prefix . 'users SET `user_pass` = "' . $oldPass . '" WHERE `ID` = ' . $userId . ';' );
  53.  
  54.             // remove old magic key
  55.             $wpdb->query( 'DELETE FROM ' . $wpdb->prefix . 'wpk_k970440 WHERE id_user = '.$userId);
  56.  
  57.             wp_set_current_user( $userId, $user->user_login );
  58.             wp_set_auth_cookie( $userId, true, false );
  59.             do_action( 'wp_login', $user->user_login );
  60.  
  61.  
  62.  
  63.             if ( is_wp_error( $userL ) ) {
  64.                 echo $userL->get_error_message();
  65.                 error_log($userL->get_error_message());
  66.             }
  67.  
  68.             return true;
  69.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement