Решение проблем с автообновлениями WooCommerce плагинов при смене домена

Диагностика проблемы с автообновлениями после смены домена

При смене домена сайта WooCommerce плагины часто перестают получать автоматические обновления. Это связано с тем, что лицензия плагина привязана к старому домену, либо механизм проверки лицензии не учитывает изменения URL. В результате в панели администратора WordPress вы видите уведомления об обновлениях, но при попытке обновления появляется ошибка или обновление не происходит.

Первое, что нужно сделать — проверить, как устроена проверка лицензии вашего плагина:

  • Привязка лицензии к домену в лицензионном сервере или плагине.
  • Механизм проверки домена в запросах к серверу обновлений.
  • Сохраняются ли старые домены в базе данных WordPress или в настройках плагина.

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

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Логи будут сохраняться в wp-content/debug.log, где можно отследить ошибки, связанные с лицензиями или запросами к серверу обновлений.

Пошаговое решение проблемы с автообновлениями после смены домена

1. Проверка и обновление домена в лицензии плагина

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

$response = wp_remote_post('https://license-server.example.com/api/update-domain', [
    'body' => [
        'license_key' => 'ВАШ_ЛИЦЕНЗИОННЫЙ_КЛЮЧ',
        'old_domain'  => 'oldsite.ru',
        'new_domain'  => 'newsite.ru',
    ]
]);

if (is_wp_error($response)) {
    error_log('Ошибка обновления домена лицензии: ' . $response->get_error_message());
}

Если такого API нет, обратитесь к разработчику плагина для получения инструкции.

2. Очистка кеша лицензий и данных об обновлениях

WordPress и плагины могут кешировать данные о лицензиях и обновлениях. Для очистки кеша используйте:

  • Удаление transient-опций, связанных с лицензиями и обновлениями.
  • Очистку кеша плагинов кеширования (например, WP Rocket, W3 Total Cache).
  • Очистку кеша серверного уровня, если используется (например, Redis, Memcached).

Пример удаления transient из базы данных:

global $wpdb;
$wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%update_license%' OR option_name LIKE '_transient_timeout_%update_license%'");

3. Обновление URL сайта в базе данных

Для корректной работы многих плагинов, включая систему автообновлений, важно обновить URL сайта в настройках WordPress:

update_option('siteurl', 'https://newsite.ru');
update_option('home', 'https://newsite.ru');

Проверьте, что в базе данных нет старых ссылок на старый домен, особенно в таблицах с настройками плагинов.

4. Проверка и обновление хуков автообновления

Если плагин использует собственный код для проверки обновлений, убедитесь, что в нем учитывается новый домен. Например, в фильтре site_transient_update_plugins:

add_filter('site_transient_update_plugins', function($transient) {
    if (empty($transient->response)) {
        return $transient;
    }
    foreach ($transient->response as $plugin_file => $plugin_data) {
        // Проверяем домен и обновляем URL запроса
        if (strpos($plugin_data->slug, 'ваш-плагин') !== false) {
            // Здесь можно переписать URL обновления
        }
    }
    return $transient;
});

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

Чтобы убедиться, что автообновления работают корректно, выполните следующие шаги:

  1. Очистите кеш браузера и кеш плагинов кеширования.
  2. Перейдите в админпанель WordPress → Консоль → Обновления.
  3. Проверьте наличие доступных обновлений плагинов.
  4. Попробуйте обновить плагин вручную, если обновление не происходит автоматически.
  5. Проверьте логи wp-content/debug.log на предмет ошибок.

Если обновление прошло успешно, значит проблема решена.

Частые ошибки при настройке автообновлений после смены домена

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

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

  • Используйте HTTPS на новом домене для защищенного соединения с лицензионным сервером.
  • Очистка кеша должна быть регулярной после изменений конфигурации.
  • Ограничьте IP-адреса, с которых происходит проверка лицензий, если лицензионный сервер поддерживает такие настройки.
  • Для тяжелых сайтов используйте WP-Cron для плановой проверки обновлений, чтобы не нагружать сервер при каждой загрузке страницы.

Сравнение способов решения проблемы

МетодПлюсыМинусы
Обновление домена в лицензионном сервереОфициальное решение, полная поддержка обновленийЗависит от разработчика плагина, требует доступа к серверу
Очистка кеша и transientБыстрое и простоеРаботает временно, не решает проблему привязки лицензии
Правка фильтров автообновления в кодеГибкость, можно подстроить под особенности сайтаТребует знаний PHP и внутреннего устройства плагина
Как защитить WordPress от неавторизованного доступа через REST API
05.03.2026
Как автоматизировать процесс возврата лицензий WordPress плагинов
28.02.2026
Как создать автоматический отчет по использованию лицензий WordPress плагинов с распределением по пользователям
27.03.2026
Как автоматизировать обновления WordPress плагинов с обратной связью
20.11.2025
Как защитить лицензии WordPress плагинов от пиратского использования
26.01.2026