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

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

Почему стандартные уведомления WordPress не всегда подходят

WordPress по умолчанию показывает уведомления в админке и может отправлять email о критических обновлениях, но этот механизм ограничен и не всегда удобен. Например:

  • Нет возможности настроить уведомления только для определённых плагинов или тем.
  • Отсутствует централизованный контроль за обновлениями с кастомными действиями.
  • Нет возможности интегрировать уведомления с внешними сервисами или делать расширенную фильтрацию.

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

Как реализовать проверку обновлений плагинов и тем через код

Для начала создадим функцию, которая будет проверять обновления доступных плагинов и тем, используя встроенные API WordPress. Для этого воспользуемся функциями get_site_transient('update_plugins') и get_site_transient('update_themes').

function wptest_check_updates() {
    $plugin_updates = get_site_transient('update_plugins');
    $theme_updates = get_site_transient('update_themes');

    $updates = [
        'plugins' => [],
        'themes' => []
    ];

    if (!empty($plugin_updates->response)) {
        foreach ($plugin_updates->response as $plugin_file => $plugin_data) {
            $updates['plugins'][] = [
                'name' => $plugin_data->slug,
                'new_version' => $plugin_data->new_version,
                'plugin_file' => $plugin_file
            ];
        }
    }

    if (!empty($theme_updates->response)) {
        foreach ($theme_updates->response as $theme_slug => $theme_data) {
            $updates['themes'][] = [
                'name' => $theme_slug,
                'new_version' => $theme_data->new_version
            ];
        }
    }

    return $updates;
}

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

Добавление уведомлений в админку WordPress

Теперь добавим в админку уведомления, которые будут показывать список обновлений. Для этого используем хук admin_notices.

function wptest_admin_update_notice() {
    $updates = wptest_check_updates();

    if (empty($updates['plugins']) && empty($updates['themes'])) {
        return;
    }

    echo '<div class="notice notice-warning is-dismissible">';
    echo '<p><strong>Доступны обновления для вашего сайта:</strong></p>';
    echo '<ul>';

    foreach ($updates['plugins'] as $plugin) {
        echo '<li>Плагин: ' . esc_html($plugin['name']) . ' — новая версия: ' . esc_html($plugin['new_version']) . '</li>';
    }

    foreach ($updates['themes'] as $theme) {
        echo '<li>Тема: ' . esc_html($theme['name']) . ' — новая версия: ' . esc_html($theme['new_version']) . '</li>';
    }

    echo '</ul>';
    echo '</div>';
}
add_action('admin_notices', 'wptest_admin_update_notice');

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

Отправка email-уведомлений об обновлениях

Для автоматической отправки писем на email администратора, добавим функцию, которая будет запускаться по расписанию — например, раз в сутки. Для этого зарегистрируем cron-задачу.

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

function wptest_send_update_email() {
    $updates = wptest_check_updates();

    if (empty($updates['plugins']) && empty($updates['themes'])) {
        return;
    }

    $to = get_option('admin_email');
    $subject = 'Доступны обновления для вашего сайта WordPress';
    $message = "Здравствуйте!\n\nДоступны следующие обновления:\n";

    foreach ($updates['plugins'] as $plugin) {
        $message .= "Плагин: {$plugin['name']} — новая версия: {$plugin['new_version']}\n";
    }

    foreach ($updates['themes'] as $theme) {
        $message .= "Тема: {$theme['name']} — новая версия: {$theme['new_version']}\n";
    }

    $message .= "\nПожалуйста, обновите их как можно скорее для безопасности и стабильности сайта.";

    wp_mail($to, $subject, $message);
}
add_action('wptest_send_update_email', 'wptest_send_update_email');

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

Использование плагинов для расширения возможностей уведомлений

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

  • WP Updates Notifier — плагин для отправки email о новых обновлениях плагинов, тем и ядра WordPress с настраиваемыми частотой и форматами писем.
  • Advanced Automatic Updates — позволяет гибко управлять автоматическими обновлениями и уведомлениями.
  • Clearfy Pro (https://wpshop.ru/clearfy-pro?utm_source=wptest.ru&utm_medium=article&utm_campaign=kak-sozdat-avtomaticheskie-uvedomleniya-o-obnovleniyah-v-wordpress) — набор оптимизаций, в том числе для уведомлений и управления обновлениями.

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

Советы по безопасности и производительности

При реализации системы уведомлений важно учитывать:

  • Не перегружайте сайт частыми запросами к API обновлений. Используйте транзиенты и кэш.
  • Обязательно проверяйте и фильтруйте все данные для предотвращения XSS и других уязвимостей.
  • Настраивайте частоту email-уведомлений так, чтобы не создавать спам и не пропустить важные обновления.
  • Тестируйте уведомления в разных сценариях, чтобы избежать ложных срабатываний.

Правильный подход к уведомлениям сделает управление сайтом проще и безопаснее.

Как добавить автоматическое удаление старых записей через WP-Cron в WordPress
31.01.2026
Как оптимизировать загрузку шаблонов WordPress для улучшения производительности
15.01.2026
Как создать адаптивный шаблон WordPress с нуля
15.11.2025
WordPress: как создать собственный тип записи (custom post type)
23.11.2025
Как добавить кастомный виджет в WordPress с поддержкой настроек и стилей
11.02.2026