Хук admin_notices в WordPress: Отображение уведомлений в админке

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

Как это работает

Когда пользователь заходит в админскую панель, WordPress вызывает хук admin_notices, и все функции, добавленные к этому хуку, выполняются, позволяя вам выводить уведомления в интерфейсе.

Пример использования

Рассмотрим пример, в котором мы выведем уведомление о необходимости обновления плагина, если установленная версия плагина устарела.

Шаг 1: Добавление уведомления

Добавим следующий код в файл functions.php вашей темы или в плагин:

// Хук для отображения уведомления о плагине
add_action( 'admin_notices', 'check_plugin_update_notice' );

function check_plugin_update_notice() {
    // Укажите название плагина
    $plugin_slug = 'example-plugin/example-plugin.php';
    $installed_plugins = get_plugins();
    
    // Проверяем, установлен ли плагин
    if ( isset( $installed_plugins[ $plugin_slug ] ) ) {
        $current_version = $installed_plugins[ $plugin_slug ]['Version'];
        $latest_version = '1.0.5'; // Предполагаем, что это последняя версия

        // Сравниваем версии
        if ( version_compare( $current_version, $latest_version, '<' ) ) {
            echo '<div class="notice notice-warning is-dismissible">
                <p>Ваш плагин <strong>Example Plugin</strong> устарел. Пожалуйста, обновите до версии ' . esc_html( $latest_version ) . '.</p>
            </div>';
        }
    }
}

Что делает этот код?

  1. Хук admin_notices: Мы используем хук admin_notices, чтобы добавить функцию, которая будет выводить уведомление.

  2. Проверка установки плагина: В функции check_plugin_update_notice мы проверяем, установлен ли указанный плагин, получая список всех установленных плагинов с помощью функции get_plugins().

  3. Сравнение версий: Если плагин установлен, мы сравниваем текущую версию с последней доступной версией с помощью version_compare(). Если текущая версия устарела, мы выводим уведомление.

  4. Вывод уведомления: Уведомление об устаревшем плагине выводится в виде сообщения с классами notice, notice-warning и is-dismissible, что позволяет пользователю закрыть уведомление.

Как это выглядит

После добавления этого кода, если текущая версия плагина устарела, в админке появится следующее уведомление:

Ваш плагин Example Plugin устарел. Пожалуйста, обновите до версии 1.0.5.

Почитаем еще?: