Як забанити користувача WordPress

Кілька днів тому мене попросили створити систему, яка бблокувала WordPress користувача відразу при установці. Отже, я створив простий плагін і хочу поділитися з вами основами цього плагіна. У цьому посібнику ми поговоримо про WordPress-фільтри, управління користувачами та про деякі інші цікаві речі.

функцію

Дивіться також :

Крок 1. Створення плагіна

Це нескладно - все, що вам потрібно зробити, це створити нову папку вwp-content/plugins під назвоюban-users. У цій папці створіть новий файл під назвоюban-users.php, відкрийте його та вставте цей код:

Крок 2. Додавання чекбоксу на сторінці користувача

Цей код просто створює виклик функції, яку нам потрібно буде створити зараз. Ця функція додасть чекбокс на сторінку редагування профілю.

Тепер нам потрібна функція, яка збереже значення чекбоксу до бази даних:

Як бачите, ця нова функція використовує дві інші функції:rc_ban_users() таrc_unban_users(). Їхні імена в принципі досить зрозуміло описують суть функцій: перша зберігає в базі даних той факт, що користувач заблокований, друга розблоковує користувачів.

Крок 3. Блокування користувачів

Тепер час створити функціюrc_ban_users(). У цій функції нам потрібно буде перевірити, чи вже зберігається таке значення, якщо ні, значення потрібно зберегти. Тому я викликаю функцію, яку опишу пізніше —rc_is_user_banned() :

Крок 4. Розблокування користувачів

Наступна функція — пряма протилежність тій, яку ми щойно створили: нам потрібна можливість "розблокувати " користувачів:

Крок 5. Чи заблокованоКористувач?

Ми бачили, що у функціяхrc_ban_users() таrc_unban_users() ми використовували функцію під назвоюrc_is_user_banned(), щоб перевірити, чи заблокований користувач. Давайте створимо її:

Загалом, ця функція просто повертає значення опції, збереженої вrc_ban_users().

функцію

Зараз у нас є новий чекбокс на сторінці редагування користувача, який має бути таким:

Щоб це зробити, потрібно використовувати стандартний WordPress фільтрwp_authenticate_user. До цього фільтра ми зачепимо функціюrc_authenticate_user(). Ця функція буде використовувати класWP_Error .

Тепер нам просто потрібно додати фільтр:

Висновок

Ми створили плагін, який додає чекбокс на сторінку редагування користувача. Ми використовували функцію для зберігання значення чекбоксу та створили функцію для блокування WordPress користувача та іншу для розблокування користувача. Також ми створили невелику функцію для перевірки, чи заблокований користувач. І, нарешті, ми зачепили функцію за фільтрwp_authenticate_user, використовуючи стандартний WordPress класWP_Error.