Учебники

Автоматический вход администратора WordPress в PHP

Автоматический вход администратора Wordpress в PHP

Сегодняшний пост будет лишь коротким, в нем я покажу вам, как установить небольшую удобную функцию на ваш сайт WordPress. При безопасном использовании это может быть очень удобно. Он разработан для использования на сайтах WordPress, которые предлагают пользователям общую учетную запись для входа. Например, во многих демонстрациях серверной части WordPress автор создает «демонстрационную» учетную запись, чтобы потенциальные клиенты могли войти в систему и поиграть с его / ее продуктом. Чаще всего автор просто отображает уведомление;

ИМЯ ПОЛЬЗОВАТЕЛЯ: демо
ПАРОЛЬ: демо

Это немного пешеходный. Неужели мы можем сделать демо-версию более обтекаемой и профессиональной? Я дам вам небольшой фрагмент кода для автоматического входа в систему администратора WordPress с этими учетными данными. Его можно либо поместить в файл функций вашей темы, либо поместить в отдельный файл плагина и активировать.

Это может быть полезно, если;

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

ВАЖНО: Никогда не используйте это для входа в учетные записи с реальной властью; например. Учетные записи администратора / редактора и т.д.

Используйте этот фрагмент осторожно.

Хорошо, поэтому, как и в других моих уроках, я сначала дам вам полный аннотированный код, чтобы те из вас, кто не любит читать, могли сразу же поэкспериментировать с ним. Следующий фрагмент выполнен в виде отдельного плагина (мои личные предпочтения).

Автоматический вход администратора Wordpress в PHP

/* Plugin Name: Auto Login Plugin URI: http://hbt.io/ Version: 1.0.0 Author: Harri Bell-Thomas Author URI: http://hbt.io/ */ function autologin() { // PARAMETER TO CHECK FOR if ($_GET['autologin'] == 'demo') { // ACCOUNT USERNAME TO LOGIN TO $creds['user_login'] = 'demo'; // ACCOUNT PASSWORD TO USE $creds['user_password'] = 'demo'; $creds['remember'] = true; $autologin_user = wp_signon( $creds, false ); if (!is_wp_error($autologin_user)) header('Location: wp-admin'); // LOCATION TO REDIRECT TO } } // ADD CODE JUST BEFORE HEADERS AND COOKIES ARE SENT add_action( 'after_setup_theme', 'autologin' );

ПРИМЕНЕНИЕ

Это очень просто использовать. Имя пользователя и пароль учетной записи указаны в файле плагина (код выше), и для входа вам просто нужно зайти; http://example.com/wp-login.php?autologin=demo

Вы должны сразу же быть перенаправлены на wp-admin, войдя в указанную учетную запись. Если учетные данные неверны, вы должны просто увидеть обычную форму входа.

НАСТРОЙКА

Этот фрагмент очень легко настроить. По сути, вам нужно будет отредактировать только 3 вещи, и все эти изменения должны быть внесены в следующий блок кода (строки с 11 по 17 полного кода).

if ($_GET['login'] == 'dummy_account') { // ACCOUNT USERNAME TO LOGIN TO $creds['user_login'] = 'dummy'; // ACCOUNT PASSWORD TO USE $creds['user_password'] = 'pa55word';

В первой строке вы увидите условную проверку параметра URL. Приведенный выше блок кода будет проверять; wp-login.php? login = dummy_account

Эти значения могут быть любыми, но будьте осторожны, чтобы избежать исходных параметров WordPress, таких как loggedout, action и redirect_to. Строка 4 – это то место, где вы указываете имя пользователя для входа в систему; настраиваемый фрагмент кода попытается войти в «фиктивную» учетную запись. Как вы, наверное, догадались, в строке 7 вы указываете пароль. Пароль выше – pa55word. Заполните эти значения, и все будет хорошо!

РАСШИРЕНИЯ

На данный момент наш сниппет настроен только для автоматического входа в одну учетную запись. Что, если нам нужны разные ссылки для входа в разные учетные записи? Это довольно быстро и легко сделать, и вам не нужно повторять весь фрагмент снова и снова. Взгляните на мое решение ниже.

/* Plugin Name: Auto Login Plugin URI: http://hbt.io/ Description: Create convenient auto-login links to quickly login to generic accounts. Configure source code to make changes. Version: 1.0.0 Author: Harri Bell-Thomas Author URI: http://hbt.io/ */ // Declare global var's global $login_parameter, $accounts; // THE PARAMETER TO CHECK FOR // eg. http://exmaple.com/wp-login.php?param_name=account $login_parameter = "autologin"; // ACCOUNT CODE BLOCK $accounts[] = array( "user" => "demo", "pass" => "demo", "location" => "wp-admin", ); // END ACCOUNT CODE BLOCK // EDIT AND REPEAT CODE BLOCK FOR AS MANY ACCOUNTS AS NEEDED // Another example iteration $accounts[] = array( "user" => "tcwp", "pass" => "demo", "location" => "wp-admin/?tcwp-sent-me", ); // SEE PREVIOUS EXAMPLE FOR DETAILS ABOUT THIS FUNCTION function autologin() { global $login_parameter, $accounts; foreach ($accounts as $account) { if ($_GET[$login_parameter] == $account['user']) { $creds['user_login'] = $account['user']; $creds['user_password'] = $account['pass']; $creds['remember'] = true; $autologin_user = wp_signon( $creds, false ); if (!is_wp_error($autologin_user)) header('Location: '. $account['location']); } } } add_action( 'after_setup_theme', 'autologin' );

По сути, это то же самое, но с добавлением дерзкого цикла foreach и массива учетных записей. Анатомия функции autologin() идентична, за исключением того факта, что ее код повторяется (с использованием цикла foreach) для каждой учетной записи. Все необходимые детали теперь хранятся в глобальном массиве. Приведенный выше пример настроен для 2 учетных записей, но наш фрагмент может вместить столько, сколько нам нужно. Чтобы добавить дополнительные учетные записи, просто настройте и добавьте столько блоков кода, сколько вам нужно.

// ACCOUNT CODE BLOCK $accounts[] = array( "user" => "anotheraccount", "pass" => "public_password", "location" => "http://YouCanPutURLsHereToo.com/", ); // END ACCOUNT CODE BLOCK

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

ЗАКЛЮЧЕНИЕ

Этот фрагмент – всего лишь простая функция, предназначенная для легкого использования, например, на демонстрационном сайте продукта, но потенциально может использоваться для гораздо более сложных сценариев входа в систему. Остальная часть кода должна быть довольно понятной, но если у вас есть какие-либо вопросы о том, что я сделал или почему я это сделал, просто оставьте комментарий ниже или напишите мне в Твиттере. Если у вас есть отзывы / предложения / идеи, оставьте комментарий в разделе комментариев ниже!

Источник записи: https://www.wpexplorer.com

Похожие сообщения
Учебники

Добавление отвлекающего чтения в WordPress

Учебники

Как исключить таксономию из типа сообщения WordPress

Учебники

Добавление пользовательских QuickTags WordPress

Учебники

Как добавить встроенную контентную рекламу в WordPress