wpmoney.ru wordpress WP Money

Как отключить обновления и уведомления для конкретных плагинов WooCommerce

Диагностика проблемы: зачем отключать обновления и уведомления для плагинов WooCommerce

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

Основные симптомы проблемы:

  • Появляются уведомления в админке о доступных обновлениях для плагинов, которые вы не хотите обновлять.
  • Автоматические обновления плагинов происходят без вашего контроля, вызывая сбои.
  • Нужно избирательно отключить обновления и уведомления только для конкретных плагинов, а не для всех подряд.

Пошаговое решение: отключаем обновления и уведомления для выбранных плагинов WooCommerce

1. Отключение обновлений через фильтр site_transient_update_plugins

WordPress хранит информацию об обновлениях плагинов в transient update_plugins. Мы можем перехватить этот массив и удалить из него обновления для конкретных плагинов.

add_filter('site_transient_update_plugins', function($transient) {
    if (empty($transient->response)) {
        return $transient;
    }

    // Список плагинов, для которых отключаем обновления
    $plugins_to_disable = [
        'woocommerce/woocommerce.php',
        'your-plugin/your-plugin.php'
    ];

    foreach ($plugins_to_disable as $plugin) {
        if (isset($transient->response[$plugin])) {
            unset($transient->response[$plugin]);
        }
    }

    return $transient;
});

2. Отключение уведомлений в админке о доступных обновлениях

Чтобы убрать уведомления с панели администратора, можно использовать хук after_plugin_row_{plugin_basename}. Например, для WooCommerce:

add_action('after_plugin_row_woocommerce/woocommerce.php', function() {
    // Просто скрываем строку об обновлении
    echo '<style>#woocommerce-woocommerce-php-update {display:none;}</style>';
}, 15);

Этот способ работает для скрытия уведомлений на уровне интерфейса, но не влияет на обновления.

3. Отключение автоматических обновлений для конкретных плагинов

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

add_filter('auto_update_plugin', function($update, $item) {
    $plugins_to_disable = [
        'woocommerce/woocommerce.php',
        'your-plugin/your-plugin.php'
    ];

    if (in_array($item->plugin, $plugins_to_disable)) {
        return false; // Отключаем автообновление
    }

    return $update;
}, 10, 2);

Проверка результата после внедрения

  • Перейдите в раздел Консоль > Обновления и убедитесь, что обновления для указанных плагинов не отображаются.
  • В разделе Плагины проверьте, что уведомления о доступных обновлениях отсутствуют.
  • Если включены автообновления, проверьте логи или воспользуйтесь плагином Debug Bar, чтобы убедиться, что обновления для заданных плагинов не запускаются.

Частые ошибки и как их исправить

  • Неверный путь к плагину в списке: вместо woocommerce/woocommerce.php указали неправильный slug — обновления не отключатся. Проверьте точный путь плагина в каталоге wp-content/plugins.
  • Кэш обновлений не сбрасывается: WordPress кэширует данные об обновлениях. После внесения изменений очистите кэш transient с помощью wp cache flush или плагина для очистки кэша.
  • Другие плагины или тема перезаписывают фильтры: убедитесь, что ваш код загружается последним, например, в functions.php дочерней темы или отдельном плагине.

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

  • Отключение обновлений увеличивает риск уязвимостей — используйте этот метод только при крайней необходимости.
  • Для управления обновлениями в масштабах сайта лучше использовать специализированные плагины, например, WPShop Clearfy Pro (https://wpshop.ru/plugins/clearfy?utm_source=wpmoney.ru&utm_medium=article&utm_campaign=woocommerce-otkljuchenie-obnovlenij-i-uvedomlenij-dlja-konkretnyh-plaginov), предоставляющий расширенные возможности контроля обновлений.
  • Регулярно проверяйте статус безопасности и совместимость плагинов, которые отключены от обновлений.

Сравнение способов отключения обновлений и уведомлений WooCommerce

МетодЧто отключаетПлюсыМинусы
Фильтр site_transient_update_pluginsОбновления плагиновПолное отключение апдейтов для плагинаМожет конфликтовать с кэшированием, требует очистки кэша
Хук after_plugin_row_{plugin}Уведомления в админкеПростой способ убрать уведомленияТолько визуальное скрытие, обновления работают
Фильтр auto_update_pluginАвтоматические обновленияКонтроль автообновлений на уровне WPНе отключает уведомления о доступных обновлениях
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше