• ДОБРО ПОЖАЛОВАТЬ В КЛУБ ПО WORDPRESS

    Мы активно растущий клуб по WordPress и нам нужна помощь каждого человека, в том числе и Ваша! Не стесняйтесь и станьте частью большого сообщества.
    Мы делимся новостями, отытом и полезными советами! Пройдите простую регистрацию, чтобы пользоваться всеми возможностями нашего клуба.

    Присоединяйтесь к нам, вам обязательно понравится - Присоединится

Редирект незалогиненного пользователя с выделенного массива определённых страниц

DjAga

НОВИЧОК

DjAga

НОВИЧОК
Сообщения
1
Доброго времени суток!

Сайт на вордпресс, стоит wp-recall и аддон к нему a-fixator.

Стоит задача, если кто-то неизвестный перешёл по ссылке на страницу, содержащую в адресе определённые слова, его редиректит, т.е. вход туда только авторизованным юзерам.

Нашёл пару примеров, что-то попытался приспособить, но не работает ни через a-fixator ни в хедере.
Если можно, укажите пожалуйста на ошибки, и\или приведите рабочий пример.
И куда его прописывать всё-таки?


Код:
global $wp;

$current_url = '';

$secretCategories = '';

$secretCourses = '';



$secretCategories = ('kategorii');

$secretCourses = ('kursy');



function access_granted(){

    global wp, wp_parse_url, wp-redirect;

  

$current_url = home_url(add_query_arg(array($_GET), $wp->request));

$pages = preg_match ( $current_url, $secretCategories or $secretCourses) ;

$parts = wp_parse_url ($pages, PHP_URL_PATH);



    if  (!is_user_logged_in ()) && (($secretCategories === $parts) or ($secretCourses === $parts)) ) {

        wp_redirect('https://page-to-redirect/');

      

    }

}

Или






Код:
$needToRedirect = FALSE;

if (strpos($_SERVER['REQUEST_URI'],$secretCategories !== FALSE)) {

    $needToRedirect = TRUE;

} elseif (strpos($_SERVER['REQUEST_URI'],$secretCourses !== FALSE)) {

    $needToRedirect = TRUE;

}

if ($needToRedirect && !is_user_logged_in ()) {

    $location = 'https://page-to-redirect/';

    wp_redirect ( $location );
 

ikonkov

СВОЙ

ikonkov

СВОЙ
Сообщения
97
В шаблоне страницы которую необходимо показывать только пользователям

PHP:
if ( is_user_logged_in() ) {

    // Код вывода контента

} else {   
    
    echo '<script>document.location.href = "любая ссылка на выход";</script>';
    
}
Так же можно усложнить и показывать только определенной роли пользователей

PHP:
if ( is_user_logged_in() ) {
// Опредяляем роль
$current_user_id = get_current_user_id();
$current_user_role = get_user_role( $current_user_id );
    if($current_user_role == 'Тут пишем роль') {

        // Код вывода контента

    } else { echo '<script>document.location.href = "любая ссылка на выход";</script>'; 
    }

} else {   

    echo '<script>document.location.href = "любая ссылка на выход";</script>';
 
}
 

Топ поддержки


Сверху