Описание admin_page_access_denied
— Action
Хук admin_page_access_denied позволяет выполнять действия при отказе в доступе к административным страницам WordPress. Он срабатывает, когда пользователь пытается получить доступ к странице, к которой у него нет прав, и может быть использован для осуществления кастомной логики, например, перенаправления или отображения сообщений.
Примеры использования
Пример перенаправления на страницу с ошибкой 403:
add_action('admin_page_access_denied', function($page, $user) {
wp_redirect(admin_url('index.php?page=access_denied'));
exit;
});
В этом примере, если пользователь пытается получить доступ к странице, к которой у него нет прав, его перенаправляют на страницу с сообщением об ошибке.
Пример отображения кастомного сообщения об ошибке:
add_action('admin_page_access_denied', function($page, $user) {
add_action('admin_notices', function() {
echo 'У вас нет прав для доступа к этой странице.
';
});
});
В данном примере выводится уведомление об ошибке на административной странице.
Пример логирования попыток доступа:
add_action('admin_page_access_denied', function($page, $user) {
error_log('Пользователь ' . $user->user_login . ' пытался получить доступ к ' . $page);
});
Этот пример записывает информацию о попытках доступа в лог ошибок сервера.
— Лучшие практики
– Использование
Используйте этот хук, когда нужно обрабатывать попытки доступа к административным страницам для пользователей без соответствующих прав
– Производительность
Хук выполняется только при отказе в доступе, поэтому он не должен значительно влиять на производительность
– Предупреждения
Следите за тем, чтобы не создавать избыточных перенаправлений или уведомлений, которые могут раздражать пользователей
Альтернативы
Тип: action
Этот хук позволяет выполнять действия при инициализации административной части, включая проверку прав доступа
Используйте его, если хотите более детально контролировать доступ к страницам на этапе инициализации