Обновление плагинов в WordPress — важная задача для поддержания безопасности и стабильности сайта. Но если у вас много плагинов или несколько сайтов, следить за обновлениями вручную неудобно и чревато ошибками. В этой статье мы подробно рассмотрим, как настроить автоматические уведомления о доступных обновлениях плагинов в WordPress, используя код и готовые плагины, а также как реализовать кастомные решения с помощью хука pre_set_site_transient_update_plugins.
Зачем нужны автоматические уведомления об обновлениях плагинов
Плагины регулярно получают обновления, которые включают исправления багов, улучшения функционала и патчи безопасности. Несвоевременное обновление может привести к уязвимостям или несовместимости с версией WordPress.
Автоматические уведомления экономят время и помогают не пропустить важные обновления. Вы получаете оповещение на почту или в админ-панели сразу, как только новая версия готова к установке.
Кроме стандартного уведомления WordPress, можно настроить собственные механизмы оповещения, интегрировать email или мессенджеры, что особенно полезно для агентств и разработчиков с большим количеством сайтов.
Использование плагинов для автоматических уведомлений
Плагин WP Updates Notifier
Один из популярных бесплатных вариантов — WP Updates Notifier. Он позволяет настроить уведомления по email о доступных обновлениях плагинов, тем и ядра WordPress.
- Можно задать частоту проверок (ежедневно, еженедельно).
- Отправка отчётов на несколько email.
- Поддержка кастомизации темы письма.
После установки и активации перейдите в Настройки > WP Updates Notifier и укажите адреса для уведомлений, а также частоту проверок.
Плагин Advanced Automatic Updates
Advanced Automatic Updates позволяет не только получать уведомления, но и автоматически обновлять плагины. Это удобно, если вы хотите полностью автоматизировать процесс.
Плагин поддерживает логирование обновлений и отправку подробных email-отчётов, что помогает отслеживать, какие обновления были установлены.
Реализация собственного уведомления о доступных обновлениях плагинов
Если вы хотите гибко управлять уведомлениями и интегрировать их в собственные системы, можно использовать хук pre_set_site_transient_update_plugins. Он вызывается при проверке обновлений плагинов и позволяет получить список доступных обновлений.
Пример функции для отправки email при наличии обновлений
function 2wp_send_plugin_update_notification( $transient ) {
if ( empty( $transient->response ) ) {
return $transient;
}
$updates = array();
foreach ( $transient->response as $plugin_file => $plugin_data ) {
$updates[] = $plugin_data->slug . ' (' . $plugin_data->new_version . ')';
}
$to = 'admin@example.com'; // Замените на нужный email
$subject = 'Доступны обновления плагинов на сайте ' . get_bloginfo( 'name' );
$message = "Доступны следующие обновления плагинов:\n" . implode( "\n", $updates );
wp_mail( $to, $subject, $message );
return $transient;
}
add_filter( 'pre_set_site_transient_update_plugins', '2wp_send_plugin_update_notification' );
Эта функция проверяет, есть ли доступные обновления, формирует список обновляемых плагинов и отправляет письмо на указанный адрес. Учтите, что такой код будет вызываться при каждой проверке обновлений, т.е. можно добавить дополнительную логику, чтобы не слать письма слишком часто.
Добавление контроля частоты уведомлений
Чтобы избежать спама, можно сохранить время последней отправки в опции и отправлять письмо, например, не чаще одного раза в сутки:
function 2wp_send_plugin_update_notification_limited( $transient ) {
if ( empty( $transient->response ) ) {
return $transient;
}
$last_sent = get_option( '2wp_last_update_notice_sent', 0 );
$time_now = time();
$interval = 24 * HOUR_IN_SECONDS; // 24 часа
if ( ( $time_now - $last_sent ) < $interval ) {
return $transient; // Не отправляем, если прошло мало времени
}
$updates = array();
foreach ( $transient->response as $plugin_file => $plugin_data ) {
$updates[] = $plugin_data->slug . ' (' . $plugin_data->new_version . ')';
}
$to = 'admin@example.com';
$subject = 'Доступны обновления плагинов на сайте ' . get_bloginfo( 'name' );
$message = "Доступны следующие обновления плагинов:\n" . implode( "\n", $updates );
wp_mail( $to, $subject, $message );
update_option( '2wp_last_update_notice_sent', $time_now );
return $transient;
}
add_filter( 'pre_set_site_transient_update_plugins', '2wp_send_plugin_update_notification_limited' );
Интеграция с WPShop и полезные плагины
Если вы используете продукты с wpshop.ru, обратите внимание на плагин Clearfy Pro. Он включает инструменты для управления обновлениями и уведомлениями, а также оптимизацию безопасности и производительности. Это позволит централизованно контролировать обновления и получать удобные оповещения.
Ещё один полезный плагин — WPRemark, который помогает создавать кастомные уведомления в админке, что может быть удобно для информирования команды о важных обновлениях или задачах.
Заключение по настройке уведомлений о плагинах
Автоматические уведомления об обновлениях плагинов — важный инструмент для поддержки сайта в актуальном и безопасном состоянии. Используйте готовые плагины, если хотите быстро настроить уведомления без программирования. Для более сложных сценариев — пишите свои функции на основе хуков WordPress.
Не забывайте контролировать частоту уведомлений, чтобы избежать спама и не пропускать важные обновления. Используйте возможности интеграции с сервисами email и мессенджерами для удобства.