0
174
2018-12-21

WordPress - Кнопка ВХОД и ВЫХОД в меню сайта с применением Login Logout Menu и WP-Recall

Давайте рассмотрим реально работающий пример того как реализовать кнопку ВХОД и ВЫХОД на сайте под управлением WordPress. То есть реально на сайте будет только одна кнопка которая в случае если пользователь не авторизирован будет иметь надпись ВХОД, если же авторизирован то надпись ВЫХОД.
Понравилась страница? Поставь свою оценку!
PLUGIN_STAR_RATINGS.SCORE_TEXTPLUGIN_STAR_RATINGS.VOTES_TEXT

В свое время когда я только начинал постигать азы работы с WordPress, реализация кнопки для входа и выхода в личный кабинет или в панель /wp-admin занимала кучу времени, так как в основном в интернете блуждали только примеры кода которые работали через function.php. Но для максимально быстрой реализации как кнопки для входа и выхода, так и для подключения функционала личного кабинета - это использование готовых решений в виде плагинов.

Login Logout Menu - плагин для создания кнопки входа и выхода в WordPress

В общем намучившись с разными примерами кода я нашел отличное решение, оно заключается в использовании плагина Login Logout Menu который помогает сделать реализацию кнопки (пункта меню) ВОЙТИ и ВЫЙТИ в меню WordPress.

 Внешний вид плагина Login Logout Menu он же BAW Login/Logout menu

Скачать плагин Login Logout Menu:

Данный плагин для WordPress помогает добавить настоящий пункт в меню ВХОД / ВЫХОД с автоматическим переключением, когда пользователь вошел в систему или нет.

Также, что немаловажно плагин поддерживает одноразовый токен который присутствует во время выхода из системы.

Еще благодаря Login Logout Menu (кстати он так же известен как BAW Login/Logout menu) можно установить два вариант текста кнопки, один для «входа в систему» ​​и второй для «выхода из системы».

Кроме того, вы можете установить нужную страницу перенаправления, возможности плагина просты и потрясающие.

WP-RECALL Плагин для реализации личного кабинета на сайте WordPress

Скачать плагин Login Logout Menu:

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

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

Добавление кнопки “ВХОД, РЕГИСТРАЦИЯ | ВЫЙТИ” Без использования плагина WP-RECALL

Если Вам не нужен функционал отличного плагина WP-RECALL а достаточно простого перехода на определенную страницу (например страницу личного кабинета созданного при помощи стороннего плагина, или в админ панель WP) после аутентификации. Вам необходимо перейти в свое меню на сайте, и создать новый пункт меню с следующим содержимым:

URL

#bawloginout#

Текст ссылки

ВХОД, РЕГИСТРАЦИЯ | ВЫЙТИ

Классы CSS

LogInRusLogOutRus

Внешний вид данного меню должен быть таким:

Внешний вид данного меню

После добавления пункта в меню, не забудьте сохранить меню.

Добавление кнопки “ВХОД, РЕГИСТРАЦИЯ | ВЫЙТИ” с использованием плагина WP-RECALL

Данный вариант пригодится Вам если Вы хотите использовать всплывающую форму WP-RECALL (попап) для авторизации на сайте. Вам необходимо прийти в свое меню на сайте, и создать новый пункт меню с следующим содержимым:

URL

#bawloginout#

Текст ссылки

ВХОД, РЕГИСТРАЦИЯ | ВЫЙТИ

Классы CSS

rcl-login LogInRusLogOutRus

Здесь Важным моментом является класс:

rcl-login

Ведь только благодаря ему на сайте и появится всплывающее окно для входа на сайт.

Внешний вид данного меню должен быть таким:

Внешний вид данного меню с пунктом WP-RECALL

После добавления пункта в меню, не забудьте сохранить меню.

Если Вы все сделали правильно, то увидите данное всплывающее окно при нажатии на кнопку “ВХОД, РЕГИСТРАЦИЯ”:

Внешний вид всплывающего окна WP-RECALL для входа в систему

Сценарий перехода на нужные страницы при входе и выходе

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

account

Это слаг страницы личного кабинета, измените его на слаг своей страницы.

/* Вход - '/' */
// Заменяем страницу wp-login на свтраницу wp-recall
add_action('init','custom_login');
function custom_login(){
 global $pagenow;
 if( !is_user_logged_in() && 'wp-login.php' == $pagenow ) {
  wp_redirect('/account');
  exit();
 }
}

/* Переадрисация при входе и выходе */
/*Выход - '/' */

add_action('wp_logout', 'wc_registration_redirect');

function wc_registration_redirect( $redirect_to) {
    wp_redirect( '/');
    exit();
}

/**
 * ВХОД - Перенаправляем пользователя в зависимости от его роли
 */
function my_login_redirect( $url, $request, $user ){
    if( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) {
                // Если вошел АДМИН - перенаправляем в админку
        if( $user->has_cap( 'administrator' ) ) {
            $url = admin_url();
                // Если вошел любой другой пользователь - перенаправляем в кабинет WP-RECALL
        } else {
            $url = home_url('/account');
        }
    }
    return $url;
}
add_filter('login_redirect', 'my_login_redirect', 10, 3 );

Ну и плюс, скроем админ панель для всех пользователей кроме администраторов.

// АДМИНБАР - Деактивируем админбар для всех кроме администраторов
add_action('after_setup_theme', 'remove_admin_bar');
function remove_admin_bar() {
    if (!current_user_can('administrator') && !is_admin()) {
      show_admin_bar(false);
    }
}