Выйти из системы пользователя, если нажать на ссылку на пользовательскую страницу.

Вопрос или проблема

Я хочу выйти из системы пользователя, если он нажимает на ссылку на странице выхода (например, example.com/logout). Мне нужно сделать это, потому что моим пользователям сайта не разрешено доступ к странице wp-login.php. У меня есть страница входа, но нет страницы выхода.

Как я могу сделать кастомную страницу в качестве ссылки для выхода? С шорткодом или без шорткода.

Да, мы создаем кастомную страницу в качестве ссылки для выхода следующим образом: добавьте это в файл function.php

add_action( 'init', 'log_out_user' );function log_out_user() {
global $wp;
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //получить url текущей страницы
if(!empty(get_current_user_id()) && $url == 'example.com/logout' ) //проверить, вошел ли пользователь в систему и текущий url страницы
{
    wp_logout(); //это выйдет пользователя
    $siteUrl = site_url(); //получить url сайта 
    wp_redirect($siteUrl);//добавьте это, если хотите перенаправить на url сайта после выхода
}}

Ответ или решение

Чтобы реализовать выход пользователя по нажатию на кастомную ссылку (например, example.com/logout) в WordPress, вам нужно внести некоторые изменения в файл functions.php вашей темы. Это позволит вам создавать нестандартные страницы для выхода, что особенно полезно, если у вас есть пользовательская страница входа и вы хотите ограничить доступ к стандартной странице wp-login.php.

Вот подробное руководство по созданию такой функциональности:

Шаг 1: Внесите изменения в файл functions.php

Откройте файл functions.php вашей активной темы и добавьте следующий код:

add_action( 'init', 'log_out_user' );

function log_out_user() {
    global $wp;
    $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // Получаем текущий URL

    // Проверяем, авторизован ли пользователь и совпадает ли URL с нашей кастомной страницей выхода
    if (!empty(get_current_user_id()) && $url == 'http://example.com/logout') {
        wp_logout(); // Выполняем выход пользователя
        $siteUrl = site_url(); // Получаем URL сайта
        wp_redirect($siteUrl);  // Перенаправляем на главную страницу после выхода
        exit(); // Завершаем выполнение скрипта
    }
}

Шаг 2: Создание кастомной страницы выхода

  1. Создайте новую страницу в админ-панели WordPress, назовите её, например, "Выход".
  2. Не добавляйте никакого контента на эту страницу, так как она будет использоваться только для выхода из системы.
  3. Опубликуйте страницу и обратите внимание на её URL.

Шаг 3: Активация кода

Теперь, когда пользователь перейдет по адресу http://example.com/logout, он будет автоматически выходить из системы, и его перенаправит на главную страницу сайта.

Примечания

  • Убедитесь, что вы заменили example.com в коде на ваш фактический домен.
  • Использование exit(); после перенаправления критично, чтобы предотвратить дальнейшее выполнение кода.
  • Следите за тем, чтобы пользователи не могли случайно выйти из системы без необходимости, так как это может вызвать неудобства.

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

Оцените материал
Добавить комментарий

Капча загружается...