Описание admin_post_nopriv_{$action}
— Action
Хук admin_post_nopriv_{$action} позволяет обрабатывать пользовательские запросы, отправленные через формы, для неавторизованных пользователей. Он срабатывает при обработке POST-запросов, которые содержат параметр action, соответствующий заданному действию, и используется для выполнения специфических действий на сайте без необходимости входа в систему
Примеры использования
Пример обработки пользовательской формы обратной связи:
add_action('admin_post_nopriv_contact_form', 'handle_contact_form');
function handle_contact_form() {
// Обработка данных формы% n if (isset($_POST['name']) && isset($_POST['email'])) {
// Логика обработки данных% n }
wp_redirect(home_url());
exit;
}
В этом примере мы обрабатываем данные формы обратной связи и перенаправляем пользователя на главную страницу
Пример отправки данных на сторонний API:
add_action('admin_post_nopriv_send_data', 'send_data_to_api');
function send_data_to_api() {
// Получаем данные из запроса% n $data = $_POST['data'];
// Отправляем данные на API% n wp_remote_post('https://api.example.com/endpoint', ['body' => $data]);
wp_redirect(home_url('/thank-you'));
exit;
}
Здесь мы отправляем данные на внешний API и перенаправляем на страницу благодарности
— Лучшие практики
– Использование
Используйте этот хук для обработки POST-запросов от неавторизованных пользователей, когда необходимо выполнить какие-либо действия, такие как обработка форм
– Производительность
Следите за тем, чтобы обработка данных была эффективной, так как это может повлиять на производительность сайта
– Предупреждения
Не забывайте проверять и фильтровать входящие данные для предотвращения уязвимостей безопасности
Альтернативы
Тип: action
Этот хук предназначен для авторизованных пользователей и позволяет обрабатывать аналогичные запросы
Используйте его, если ваша форма должна быть доступна только авторизованным пользователям