Описание admin_post_{$action}
— Action
Хук admin_post_{$action} используется для обработки POST-запросов, отправленных с форм в админ-панели WordPress. Он срабатывает, когда пользователь отправляет форму, указанную с помощью action, и позволяет выполнять определенные действия на основе переданных данных
Примеры использования
Пример обработки POST-запроса с формы:
add_action('admin_post_my_custom_action', function() {
// Проверка nonce для безопасности
check_admin_referer('my_custom_nonce');
// Обработка данных формы
$my_data = sanitize_text_field($_POST['my_data']);
// Выполнение необходимых действий с данными
// Перенаправление обратно на страницу
wp_redirect(admin_url('admin.php?page=my_custom_page'));
exit;
});
В этом примере мы обрабатываем данные формы, проверяем nonce для безопасности и перенаправляем пользователя обратно на админ-страницу
Пример с использованием параметра action для разных форм:
add_action('admin_post_my_other_action', function() {
// Обработка данных из другой формы
$other_data = sanitize_text_field($_POST['other_data']);
// Выполнение действий
wp_redirect(admin_url('admin.php?page=my_other_page'));
exit;
});
Здесь мы обрабатываем другую форму, указывая различный action
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо обрабатывать данные из форм в админ-панели, особенно если требуется выполнение специфичных действий на основе пользовательского ввода
– Производительность
Хук не должен негативно влиять на производительность, если правильно организовать обработку данных
– Предупреждения
Следите за безопасностью, проверяйте nonce и валидируйте данные перед их использованием
Альтернативы
Тип: action
Этот хук аналогичен admin_post_{$action}, но предназначен для обработки POST-запросов от неавторизованных пользователей
Используйте его, если вам нужно обрабатывать формы, отправленные пользователями, которые не вошли в систему