Как добавить автоматические уведомления о обновлениях плагинов в WordPress

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

Почему важны уведомления об обновлениях плагинов

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

Автоматические уведомления на email или в мессенджеры позволят быть в курсе изменений без постоянного мониторинга панели управления.

Как работает стандартная система обновлений плагинов в WordPress

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

Поэтому часто администраторам приходится дополнительно устанавливать плагины или писать свой код для уведомлений.

Реализация уведомлений о обновлениях плагинов на email с помощью кода

Рассмотрим простой пример, как отправлять email-уведомление при обнаружении обновлений плагинов. Используем встроенные хуки WordPress для проверки обновлений.

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

function wpma_send_plugin_update_notification() {
    // Получаем список доступных обновлений плагинов
    $update_plugins = get_site_transient('update_plugins');
    if (empty($update_plugins->response)) {
        return; // Обновлений нет
    }

    $plugins_to_update = array_keys($update_plugins->response);
    $plugin_names = [];

    foreach ($plugins_to_update as $plugin_file) {
        $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin_file);
        $plugin_names[] = $plugin_data['Name'];
    }

    $to = get_option('admin_email');
    $subject = 'Обновления плагинов доступны на сайте ' . get_bloginfo('name');
    $message = "Доступны обновления для следующих плагинов:\n" . implode("\n", $plugin_names) . "\n
Пожалуйста, зайдите в админпанель для обновления.";

    wp_mail($to, $subject, $message);
}

// Хук на wp_version_check срабатывает при проверке обновлений
add_action('wp_version_check', 'wpma_send_plugin_update_notification');

Этот код проверяет наличие обновлений плагинов и отправляет email на адрес администратора сайта. Хук wp_version_check запускается при плановом событии проверки обновлений.

Обратите внимание, что для работы функции get_plugin_data() необходимо подключить файл plugin.php из WordPress core, если эта функция не доступна.

Улучшение кода: отправка уведомлений раз в сутки

Чтобы не получать много писем, можно настроить отправку уведомления только один раз в сутки, если обновления не были установлены.

function wpma_schedule_plugin_update_notifications() {
    if (!wp_next_scheduled('wpma_daily_plugin_update_notification')) {
        wp_schedule_event(time(), 'daily', 'wpma_daily_plugin_update_notification');
    }
}
add_action('wp', 'wpma_schedule_plugin_update_notifications');

function wpma_daily_check_and_notify() {
    // Код из предыдущей функции с добавлением проверки опции
    $update_plugins = get_site_transient('update_plugins');
    if (empty($update_plugins->response)) {
        return;
    }

    if (get_option('wpma_plugin_update_notified')) {
        return; // Уже уведомляли
    }

    $plugins_to_update = array_keys($update_plugins->response);
    $plugin_names = [];
    foreach ($plugins_to_update as $plugin_file) {
        $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin_file);
        $plugin_names[] = $plugin_data['Name'];
    }

    $to = get_option('admin_email');
    $subject = 'Обновления плагинов доступны на сайте ' . get_bloginfo('name');
    $message = "Доступны обновления для следующих плагинов:\n" . implode("\n", $plugin_names) . "\nПожалуйста, зайдите в админпанель для обновления.";

    wp_mail($to, $subject, $message);
    update_option('wpma_plugin_update_notified', true);
}
add_action('wpma_daily_plugin_update_notification', 'wpma_daily_check_and_notify');

// Сброс уведомления при обновлении плагинов
function wpma_reset_notification_flag($upgrader_object, $options) {
    if ($options['type'] === 'plugin' && $options['action'] === 'update') {
        delete_option('wpma_plugin_update_notified');
    }
}
add_action('upgrader_process_complete', 'wpma_reset_notification_flag', 10, 2);

Полезные плагины для расширенных уведомлений об обновлениях

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

  • WP Updates Notifier — позволяет отправлять email с информацией о доступных обновлениях для ядра, плагинов и тем. Можно настроить частоту уведомлений и список получателей.
  • Advanced Notifications — расширяет стандартные уведомления, поддерживает отправку на несколько адресов, а также уведомления о новых комментариях и других событиях.
  • Clearfy Pro — комплексный плагин оптимизации, который в том числе умеет управлять уведомлениями об обновлениях и отключать лишние оповещения, чтобы не засорять админпанель.

Все эти плагины можно скачать и подробнее посмотреть на https://wpshop.ru/plugins/.

Интеграция уведомлений об обновлениях в мессенджеры

Для удобства многие хотят получать уведомления не только на email, но и в Telegram, Slack или другие сервисы. Для этого можно использовать сторонние библиотеки и API мессенджеров.

Пример отправки уведомления в Telegram через бота:

function wpma_send_telegram_update_notification($message) {
    $bot_token = 'ВАШ_ТОКЕН_БОТА';
    $chat_id = 'ID_ЧАТА';
    $url = "https://api.telegram.org/bot$bot_token/sendMessage";

    $args = [
        'body' => [
            'chat_id' => $chat_id,
            'text' => $message,
        ],
    ];
    wp_remote_post($url, $args);
}

// Использование внутри функции проверки обновлений
function wpma_notify_telegram_if_updates() {
    $update_plugins = get_site_transient('update_plugins');
    if (empty($update_plugins->response)) {
        return;
    }
    $plugin_names = [];
    foreach (array_keys($update_plugins->response) as $plugin_file) {
        $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin_file);
        $plugin_names[] = $plugin_data['Name'];
    }
    $message = "Доступны обновления для плагинов: " . implode(", ", $plugin_names);
    wpma_send_telegram_update_notification($message);
}

Такой подход требует создания Telegram-бота и получения токена, но отлично подходит для оперативного информирования команды.

Выводы и рекомендации

Автоматические уведомления о доступных обновлениях плагинов — важный инструмент для поддержки безопасности и стабильности WordPress-сайта. Стандартный функционал можно расширить с помощью собственного кода, как показано выше, или использовать готовые плагины из WPShop.

Также рекомендуем комбинировать email-уведомления с интеграцией в мессенджеры для оперативного информирования и контроля над обновлениями.

Как создать автоматический импорт из CSV в WordPress
18.01.2026
Отладка конфликтов плагинов WordPress — практическое руководство от WPMA
07.12.2025
Оптимизация WordPress для мобильных устройств: практические советы и примеры
30.11.2025
Как добавить кастомные типы записей в WordPress без плагинов
16.12.2025
Как разрешить пользователям загружать файлы в WordPress по расширениям
14.02.2026