Как перенаправить конкретного пользователя на определенную страницу?Я не говорю о после входа в систему - PullRequest
0 голосов
/ 26 января 2019

Я использую WordPress.

Я знаю, как перенаправить пользователя на определенную страницу после входа в систему. Но, допустим, они уже вошли в систему и щелкают по определенному URL-адресу, его следует перенаправить на другой.

Пример: ПОЛЬЗОВАТЕЛЬ А Пользователь уже вошел в систему. Он нажимает domainname.com/my-account Он будет перенаправлен на domainname.com/profile1

ПОЛЬЗОВАТЕЛЬ Б Пользователь уже вошел в систему. Он нажимает domainname.com/my-account Он будет перенаправлен на domainname.com/profile2

Все они нажимают на domainname.com/my-account, но их нужно перенаправить на другую страницу.

Это перенаправление для каждого пользователя. Есть ли способ сделать это в function.php?

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Это должно быть сделано

<?php

function my_custom_user_redirect()
{
    // Get the current page\object
    $the_page = sanitize_post($GLOBALS['wp_the_query']->get_queried_object());
    // Get the Slug
    $slug = $the_page->post_name;
    // Check if the slug is my-account
    if ($slug === 'my-account') {
        // Get the user
        $user = wp_get_current_user();
        // if the user is logged in
        if ($user->ID) {
            // Set the url: https://sample.test/profile1
            $url = get_site_url() . 'profile' . $user->ID;
            // Redirect
            wp_safe_redirect($url);
        }
    }
}
add_action('init', 'my_custom_user_redirect');

0 голосов
/ 26 января 2019

Вы можете сделать это, используя глобальную переменную $_SERVER.

Но для того, чтобы дать вам полный ответ, мне нужно знать, как вы отличаетесь, если пользователь увидит /profile1 или profile2.Это все женщины, которые видят /profile1, или все администраторы или все эти имена "Джим"?

Это версия, где пользователь с именем пользователя jim увидит profile1, - а все остальные увидят profile2.

function custom20180126_redirect() {

  $user = wp_get_current_user();
  $target_uri = $_SERVER['REQUEST_URI'];
  if( $target_uri == '/my-account' ){
    if( $user->data->user_login == 'jim' ){
      wp_redirect( '/profile1' );
    } else {
      wp_redirect( '/profile2' );  
    } 
  }
}
add_action( 'template_redirect', 'custom20180126_redirect' );

Вставь это в свой functions.php ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...