Домой Wp-Recall WP-Recall: Вопросы и ответы Чем заменить стандартную функцию выхода WP ?
8ответ(ов) в теме
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
1
21:17

Здравствуйте.
Использую плагин iThemes Security, конкретно - настройку, которая меняет адрес входа в админку на отличную от wp-login
Столкнулся с проблемой, когда адрес входа в админку отображается в коде страницы на которой размещена кнопка "Выход" плагина WP-Recall.
В файле loginform.php есть строка:

<p>'.rcl_get_button(__('Exit','rcl'),wp_logout_url( home_url() ),array('icon'=>'fa-external-link')).'</p>';

которая, собственно и отвечает за выход с использованием функции wp_logout_url. Вопрос: можно ли как-то заменить эту функцию, которая в результате выводит в коде путь к скрытому адресу входа в админку ?

1
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
2
21:22

вы можете использовать фильтр 'logout_url'

apply_filters( 'logout_url', $logout_url, $redirect );

Обращаясь к нему через свою функцию вы сможете подменить урл выхода на свой и прописать произвольный урл редиректа после выхода

0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
3
21:32

Благодарю за оперативный ответ. По-сути, после выхода у меня происходит редирект на главную, поэтому непосредственно с редиректом проблем нет, на стандартную стр. выхода ВП не выбрасывает. Но в коде страницы, где есть функция wp_logout_url все равно отображается скрытая плагином адресная ссылка входа в админку.

0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
4
21:41

как вариант, можно подменить урл на тот что вам нужен через указанный фильтр. Урл выхода какой должен быть?

0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
5
21:50

Сейчас на странице, где есть кнопка "Выход" плагина WP-Recall, вот такой код для кнопки:

<p><a href="http://www.имя сайта/скрытый адрес входа в админку?action=logout&amp;redirect_to=http%3A%2F%2Fwww.адрес сайта&amp;_wpnonce=9da51aa121" class="recall-button "><i class="fa fa-external-link"></i>Выход</a></p></div></div></div></div><!-- .widget /-->

подменить хотелось бы на любой, лишь бы не "светить" адрес входа в админку.

1
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
6
08:31

ну я же указал какой фильтр использовать для смены выводимого урла - 'logout_url'.

add_filter('logout_url','my_custom_logout_url',99);
function my_custom_logout_url($url){
return 'тут прописываем свой урл';
}

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

0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
7
10:32

Да, действительно логоут не происходит, пользователь остается залогиненым.
Отписал на форум плагина.
Спасибо.

0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
8
09:45

Проблема решена кодом:

add_filter( 'logout_url', 't5_custom_logout_url', 10, 2 );
add_action( 'wp_loaded', 't5_custom_logout_action' );
function t5_custom_logout_url( $logout_url, $redirect )
{
    $url = add_query_arg( 'logout', 1, home_url( '/' ) );
    if ( ! empty ( $redirect ) )
        $url = add_query_arg( 'redirect', $redirect, $url );
    return $url;
}
function t5_custom_logout_action()
{
    if ( ! isset ( $_GET['logout'] ) )
        return;
    wp_logout();
    $loc = isset ( $_GET['redirect'] ) ? $_GET['redirect'] : home_url( '/' );
    wp_redirect( $loc );
    exit;
}

который был добавлен в самое начало фала rcl-functions.php

2
Тема закрыта. Публикация новых сообщений запрещена.