Перенаправить пользователя WordPress в зависимости от роли пользователя при доступе к странице - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь создать простое перенаправление, когда кто-то пытается получить доступ к определенной странице в зависимости от роли пользователя.

Я создал сайт с функциональностью членства, которая предлагает определенные вещи платным участникам. Бесплатные участники могут получить доступ только к одной странице после входа в систему, но если они знают URL-адрес платной области, они могут видеть содержимое. Мне было интересно, есть ли способ создать перенаправление 301, чтобы, когда свободный участник пытается go на платной странице, он перенаправил их обратно в свободную область.

Возможно ли это? Если вам нужна дополнительная информация, пожалуйста, спросите!

Спасибо, Дэвид

Ответы [ 3 ]

1 голос
/ 03 февраля 2020

@rajat.gite

Я попробовал вам ответить, но это не сработало так, как я хотел, поэтому я изменил код, как показано ниже:

function role_redirections() {
$loggedin_user = wp_get_current_user();  
if (!is_user_logged_in() || !in_array( 'memorial_user', (array) $loggedin_user->roles )) {
    $location1 =  'https://www.myswansong.com/member-portal/';
    header('Location: '.$location1.'');
    } 
}
add_action('wp_head', 'role_redirections');

Единственная реальная разница - это изменение home_url (); на строку с полным URL, который мне нужен.

Спасибо за вашу помощь.

1 голос
/ 03 февраля 2020

Вы также можете попробовать это и сделать его более дружественным к WordPress.

function role_redirections() {
$loggedin_user = wp_get_current_user();  
if (!is_user_logged_in() || !in_array( 'memorial_user', (array) $loggedin_user->roles )) {
    $location1 =  get_option( 'siteurl' ) .'/member-portal/';
    header('Location: '.$location1.'');
    } 
}
add_action('wp_head', 'role_redirections');
1 голос
/ 03 февраля 2020

вставьте этот код в вашу активируемую тему или функцию охлажденной темы. php file

function role_redirections() {
    $logedin_user = wp_get_current_user();  
    if (!is_user_logged_in() || !in_array( 'shop_manager', (array) $logedin_user->roles )) {
        $location1 =  home_url();
        header('Location: '.$location1.'');
    } 
}
add_action('wp_head', 'role_redirections');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...