Описание admin_action_{$action}
— Action
Хук admin_action_{$action} позволяет выполнять определенные действия в ответ на пользовательские запросы в административной панели WordPress. Он срабатывает, когда пользователь выполняет действие через URL, соответствующий определенному действию, например, при нажатии кнопки или отправке формы
Примеры использования
Пример обработки пользовательского действия при нажатии кнопки:
add_action('admin_action_custom_action', function() {
// Выполните действие здесь, например, обновите данные.
wp_redirect(admin_url('admin.php?page=my_page'));
exit;
});
Этот код выполняет действие при вызове action ‘custom_action’, затем перенаправляет пользователя обратно на страницу админки.
Пример изменения данных в базе при выполнении действия:
add_action('admin_action_update_product', function() {
// Получаем данные из запроса.
$product_id = intval($_GET['product_id']);
// Обновляем товар в базе данных.
update_post_meta($product_id, 'stock', 10);
wp_redirect(admin_url('admin.php?page=products'));
exit;
});
В этом примере мы обновляем количество товара в базе данных по переданному ID.
Пример проверки прав доступа перед выполнением действия:
add_action('admin_action_custom_secure_action', function() {
// Проверяем, есть ли у пользователя необходимые права.
if (!current_user_can('manage_options')) {
wp_die('У вас нет прав для доступа к этой странице');
}
// Выполните действие здесь.
wp_redirect(admin_url('admin.php?page=my_secure_page'));
exit;
});
Этот код проверяет, имеет ли пользователь права администратора перед выполнением действия.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо обрабатывать пользовательские действия в административной панели WordPress
– Производительность
Старайтесь минимизировать объем выполняемых операций внутри хуков для предотвращения замедления загрузки админ-панели
– Предупреждения
Убедитесь, что вы проверяете права доступа пользователя, чтобы избежать несанкционированного доступа к функционалу
Альтернативы
Тип: action
Этот хук предназначен для обработки действий отправленных из форм, которые могут быть вызваны как обычными, так и зарегистрированными пользователями
Используйте его, когда необходимо обрабатывать данные формы, отправленные пользователями