Коли ти власник і єдиний автор блогу – навмисне чи випадкове видалення користувача звучить скоріше як фантастика! 🙂 Такого просто не може бути! Інша річ, коли ти власник порталу чи великого блогу з багатьма користувачами – авторами, адміністраторами, та ще й із заплутаною системою прав. Одного дня нав’язлива думка про це може почати з’являтись у вигляді жаху! :blink: Тож сьогодні ми навчимось робити дуже корисну річ – блокувати можливість видалення користувача у WordPress.
Загалом код дуже простий. Я поясню його по крокам. Спершу нам потрібно викликати дію, пов”язану із процесом видалення акаунта користувача. Для цього скористаємось функцією дії add_action
. Тег (хук), що відповідає за процес видалення виглядає як delete_user
(його аргумент – це ID користувача).
Функція дії з’єднує тег (хук) із потрібною кастомною функцією. Найчастіше потрібна функція є кастомною, написаною програмістом для виконання спеціальних дій. А ось тег (хук) – це наперед визначені розробниками WordPress функції, кожна з яких відповідає за певну подію у функціонуванні двигунця. У WordPress Codex є погрупований список хуків.
Отож, початок нашого коду такий:
add_action( 'delete_user', 'dont_delete_user' );
Як бачимо, першим параметром функції дії add_action
є назва тега (хука), другим – наша кастомна функція, яка унеможливить видалення користувацького акаунта. Власне, тепер необхідно написати її.
function dont_delete_user( $id ) {
$dont_delete_ids = array( 1, 2, 3, 4, 5 );
if ( in_array( $id, $dont_delete_ids ) )
wp_die( 'Ви не можете видалити акаунт цього користувача.' );
}
Створюємо функцію dont_delete_user
. Назначаємо перемінній $dont_delete_ids
масив, що складається із номерів ID користувачів, які необхідно вберегти від видалення. Саме тут ми визначаємо, яких користувачів “захищати” (по номеру ID), а яких – ні. Далі застосовуємо умовну конструкцію та функцію перевірки даних у масиві, що загалом, простою мовою, звучить так: якщо номер ID користувача, акаунт якого видаляється, є у масиві номерів “захищених” від видалення, то виконання поточної WordPress функції зупиняється.
add_action( 'delete_user', 'dont_delete_user' );
function dont_delete_user( $id ) {
$dont_delete_ids = array( 1, 2, 3, 4, 5 );
if ( in_array( $id, $dont_delete_ids ) )
wp_die( 'Ви не можете видалити акаунт цього користувача.' );
}
Ось так виглядає повний варіант нашого коду. Його потрібно помістити у файл functions.php.
За підтримки:
Український форум Веб-Безпеки. Дискусії щодо безпеки двигунців, розмови про мови програмування, новини кібер світу.
Агентства недвижимости Москвы. Каталог агентств недвижимости Москвы и Подмосковья. Все о покупке, продаже и обмене недвижимости.