Перенаправление пользователя на URL с именем пользователя WordPress - PullRequest
0 голосов
/ 26 июня 2018

Я хочу перенаправлять пользователей после входа в систему на основе имени пользователя.

add_filter( 'login_redirect', 'wppbc_custom_login_redirect', 99, 3 );
function wppbc_custom_login_redirect( $redirect_to, $requested_redirect_to, 
$user ) {
   if( is_wp_error( $user ) ) {
      return $redirect_to;
   }
   $username = $user->user_login;
   if ( is_array( $form_args ) ) {
      switch ( $username ) {
     case 'User1':
        $redirect_to = 'https://www.example.com/User1';
        break;
     case 'User2':
        $redirect_to = 'https://www.example.com/User2';
        break;
     default:
        $redirect_to = 'https://www.example.com';
      }
   }
   return $redirect_to;
}

Единственная проблема заключается в том, что мне не нужно вручную добавлять каждого пользователя в этот список с доменом, на который я хочу, чтобы они были перенаправлены после успешного входа в систему.Мне нужен один код, в который я могу добавить переменную имени пользователя в домен.

Имя пользователя x успешно войдет в систему и будет перенаправлено на www.example.com/x Имя пользователя y успешно войдет в систему и будет перенаправленона www.example.com/y

Может кто-нибудь помочь мне с этим кодом?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Хорошо, я не понимаю подсказки JavaScript, хаха.Редирект

$redirect_to = 'https://www.example.com/' . $username;

Не работает ..

0 голосов
/ 26 июня 2018

Нельзя так делать необходимо отправить обратно переменную javascript на ваш сервер, прежде чем сервер сможет обработать значение. Для этого вы можете либо запрограммировать функцию javascript, которая отправляет форму, либо использовать ajax / jquery. jQuery.post

Возможно, самый простой подход для вас - что-то вроде этого

function myJavascriptFunction() { 
  var javascriptVariable = "John";
  window.location.href = "myphpfile.php?name=" + javascriptVariable; 
}

В вашем myphpfile.php вы можете использовать $ _GET ['name'] после того, как ваш javascript был выполнен.

...