Что такое уведомления администратора в WordPress?

При работе с административной панелью сайта на WordPress вы иногда можете заметить уведомления, появляющиеся в верхней части экрана. Эти уведомления помогают узнать о возникших ошибках, изменениях в настройках или других важных действиях. Хотя WordPress по умолчанию предлагает несколько стандартных уведомлений для администраторов, дополнения и темы могут добавлять свои собственные оповещения.

Система уведомлений в WordPress включает четыре основных типа:

  • notice-success,
  • notice-error,
  • notice-warning,
  • notice-info.

Давайте подробнее рассмотрим каждую категорию уведомлений и разберемся в их устройстве.

Код для этих различных типов администраторских оповещений в целом идентичен. Главное различие заключается в названиях CSS-классов и тексте сообщений. Например, стандартный код, который WordPress генерирует для уведомления типа success, выглядит следующим образом:

Настройки успешно сохранены.

Структура других уведомлений схожа, но они могут использовать иные названия CSS-классов, такие как settings-error, которые автоматически создаются WordPress для администраторских оповещений. Эти уведомления отображаются на страницах настроек. Некоторые администраторские страницы могут также включать атрибут id в своих уведомлениях. Например, на страницах параметров можно увидеть следующее уведомление:

id="setting-error-settings_updated"

К счастью, нам не нужно учитывать атрибуты id и дополнительные классы, которые WordPress добавляет к уведомлениям. Для создания собственных уведомлений потребуется всего лишь базовая разметка:

Настройки сохранены.

С помощью данного основного шаблона можно создавать любые уведомления для администратора, просто изменяя классы и текст сообщения. Все остальные аспекты останутся неизменными или будут обрабатываться автоматически системой WordPress.

Класс dismissible

В описанном примере стоит обратить внимание на класс is-dismissible, который присутствует во внешнем элементе. Этот класс отвечает за отображение кнопки Закрыть, по нажатию на которую пользователь сможет закрыть уведомление.

Когда активирован класс is-dismissible, WordPress автоматически добавляет необходимую разметку для отображения кнопки “x”. Таким образом, просто включение этого класса достаточно для создания подобного уведомления. Вам нужно использовать следующий код:

Настройки успешно сохранены.

Настройки успешно сохранены.

Важно отметить, что WordPress также предоставляет CSS для стилизации уведомлений и JavaScript, необходимые для их функционирования. Чтобы протестировать, как они работают, откройте в административной панели Настройки -> Общие и нажмите кнопку Сохранить изменения.

Админ-меню Настройки

Типы уведомлений администратора

Как уже упоминалось, WordPress по умолчанию предлагает 4 типа уведомлений.

notice-success – появляется при успешном выполнении действия (например, обновление плагина или публикация поста).

Успех.

notice-error – используется для информирования о возникшей ошибке (например, не удалось установить плагин или сбой на хостинге).

Ошибка.

notice-warning – предназначено для предупреждения пользователя о чем-то важном (например, о наличии значительного обновления системы или плагина).

Внимание.

notice-info – служит для передачи информации пользователю (например, ссылки на подробную документацию).

Информация для пользователя.

В кодах тем и плагинов могут встретиться и другие типы уведомлений:

updated – сообщение с зеленым фоном;
error – сообщение с красным фоном;
update-nag – уведомление с желтым фоном.

Эти типы считаются «реликвиями» из более ранних версий WordPress и не рекомендуется использовать их. Несмотря на то, что они все еще рабочие, они устарели по сравнению с вышеописанными типами.

Как добавить уведомление администратора по умолчанию?

Для страниц настроек, находящихся в админ-меню Настройки, WordPress автоматически показывает уведомления error и updated. Следовательно, если страница настроек вашего плагина или темы расположена в этом разделе, все уведомления для администратора обрабатываются системой по умолчанию.

Если же страницы настроек находятся в других местах, уведомления администратора автоматически не отображаются. Это значит, что если настройки темы или плагина находятся в собственном меню (или в подменю любого раздела, кроме Настройки), WordPress не покажет сообщения автоматически. В таких случаях нужно использовать специальную функцию settings_errors() для отображения уведомлений error и updated. Есть два варианта, как это сделать.

Способ 1

Наиболее простой способ – явно вставить вызов settings_errors() в выводимые параметры.

Ваше название плагина или темы

. .

При этом WordPress будет показывать уведомления для администратора по умолчанию при успешном обновлении настроек или возникновении ошибок.

Способ 2

Другой вариант – использовать хук admin_notices для добавления settings_errors().

function site_add_settings_errors() < settings_errors(); >add_action( 'admin_notices', 'site_add_settings_errors' );

Этот код, как и в предыдущем варианте, запускает хук admin_notices и выводит сообщения под тегом страницы . Этот метод предпочтителен, поскольку он более гибкий и расширяемый.

Добавление пользовательских уведомлений администратора

Чтобы создать собственные уведомления, есть два метода: можно подключиться к admin_notices или использовать функцию add_settings_error(). Рассмотрим на примере оба подхода.

Способ 1. Хук admin_notices

Самый простой вариант для создания пользовательских уведомлений администратора – это написать функцию и подключить ее к хуку admin_notices. Например:

function site_custom_admin_notice() < ?> add_action( 'admin_notices', 'site_custom_admin_notice' );

Здесь “site” – это название плагина или темы, использующееся в качестве текстового домена для функции _e() и в качестве префикса для имени функции. Функция выводит наше уведомление, которое будет подключено к admin_notices для отображения в админ-части WordPress. Не забывайте, что можно изменять стиль уведомления, воспользовавшись одним из 4-х стандартных CSS-классов (notice-success,
notice-error, notice-warning и notice-info).

Способ 2. Функция add_settings_error()

Этот метод подходит для использования непосредственно в функции проверки настроек. Предположим, что наш плагин регистрирует настроечную группу:

// register_setting() register_setting( 'my_option_group', 'my_option_group', 'my_option_group_validate' );

В результате будет вызвана функция my_option_group_validate().

function my_option_group_validate( $input ) < if ( null != $input ) < if ( false === get_option( 'my_option' ) ) < add_option( 'my_option', $input ); >else < update_option( 'my_option', $input ); >> return $input; >

Эта функция проверяет данные, входящие в параметр my_option_group.

Допустим, что мы хотим показать специальное уведомление администратора, в зависимости от того, соответствует ли определенный параметр нужным критериям. Вместо стандартного уведомления “Настройки сохранены”, которое относится к всей группе настроек, мы желаем отобразить сообщение, относящееся к конкретному параметру. В этом случае поможет функция add_settings_error(). Мы можем создать персонализированное уведомление, добавив add_settings_error() в нашу функцию проверки.

function my_option_group_validate( $input ) < message = null; $type = null; if ( null != $input ) < if ( false === get_option( 'my_option' ) ) < add_option( 'my_option', $input ); $message = __( 'Опция добавлена.' ); $type = 'updated'; >else < update_option( 'my_option', $input ); $message = __( 'Опция обновлена.' ); $type = 'updated'; >> else < $message = __( 'Произошла ошибка.' ); $type = 'error'; >// add_settings_error() add_settings_error( 'my_option_notice', 'my_option_notice', $message, $type ); return $input; >

Мы улучшили начальную функцию проверки, добавив несколько условий. Теперь код следит за переменными $message и $type, которые могут быть использованы функцией add_settings_error() для отображения персонализированного уведомления в зависимости от происходящего с my_option. Этот подход полезен, так как позволяет детально контролировать конкретные случаи настроек и, следовательно, отображать точную информацию пользователю. Также это хорошо тем, что не требует дополнительных хуков.

Способ 3. Универсальный

Хотя любой из перечисленных ранее методов считается наилучшим, иногда требуется альтернативный вариант. Этот способ позволит быстро добавить пользовательские уведомления администратора практически в любом месте.

Данный фрагмент кода задействует глобальную переменную $_GET, проверяя, получено ли обновление параметров, а затем отображает необходимую разметку для уведомления администратора.

Этот метод является «быстрым решением» для устранения узких мест. Лучше использовать один из предлагаемых ранее методов для интеграции уведомлений администратора.

Оставьте комментарий