Диагностика проблемы с автообновлениями после смены домена
После смены домена WooCommerce-плагины могут перестать получать автоматические обновления. Это связано с тем, что лицензии часто привязываются к домену, и система обновлений проверяет соответствие домена в лицензии и текущего сайта. Если они не совпадают — обновления блокируются.
Для диагностики проблемы выполните следующие шаги:
- Проверьте сообщения об ошибках в панели WordPress в разделе обновлений.
- Включите режим отладки WordPress, добавив в
wp-config.phpстроки:
и проверьте файлdefine('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);wp-content/debug.logна наличие ошибок, связанных с лицензиями или автообновлениями. - Проверьте, что текущий домен корректно прописан в настройках WooCommerce и плагина лицензирования.
- Убедитесь, что лицензия активирована на новом домене (если требуется повторная активация).
Пошаговое решение проблемы автообновлений WooCommerce плагинов после смены домена
1. Обновите домен в настройках лицензионного сервера
Если вы используете собственный лицензионный сервер, необходимо обновить запись домена в базе данных лицензий. Для популярных решений, например Easy Digital Downloads или WooCommerce Software Add-on, это делается через админ-панель или SQL-запрос:
UPDATE wp_licenses SET domain = 'newdomain.com' WHERE license_key = 'ВАШ_КЛЮЧ';2. Реактивируйте лицензию на новом домене с помощью REST API
Для плагинов с REST API лицензирования сделайте POST-запрос для деактивации лицензии на старом домене и активации на новом:
$response = wp_remote_post('https://license-server.com/wp-json/license/v1/deactivate', [
'body' => [
'license_key' => 'ВАШ_КЛЮЧ',
'domain' => 'olddomain.com'
]
]);
$response = wp_remote_post('https://license-server.com/wp-json/license/v1/activate', [
'body' => [
'license_key' => 'ВАШ_КЛЮЧ',
'domain' => 'newdomain.com'
]
]);3. Обновите URL плагина и домен в самом WordPress
Проверьте, что в Settings > General прописаны правильные URL сайта. Если сайт мигрировали вручную, возможен сбой в базе данных. Запустите поиск и замену через WP-CLI:
wp search-replace 'olddomain.com' 'newdomain.com' --skip-columns=guid4. Очистите кеш и проверьте доступ к серверу обновлений
Если используется кеширование (напр. Redis, memcached, плагин кеша), очистите кеш. Также убедитесь, что сервер может сделать исходящий HTTP-запрос к серверу обновлений.
Проверка результата после внедрения
- Перейдите в панель WordPress > Обновления и проверьте, отображаются ли обновления плагинов.
- Выполните ручную проверку обновлений через WP-CLI:
wp plugin update --all --dry-run. Ошибок быть не должно. - Просмотрите логи
debug.logна отсутствие ошибок лицензирования. - Проверьте, что лицензия активна на новом домене (обычно в настройках плагина или панели лицензирования).
Частые ошибки и способы их исправления
- Ошибка: Лицензия привязана к старому домену и не снимается.
Решение: Используйте REST API или SQL для деактивации лицензии на старом домене. - Ошибка: После смены домена в базе остались старые URL.
Решение: Используйте WP-CLI или плагин Search & Replace для полного обновления URL. - Ошибка: Отсутствие соединения с сервером обновлений.
Решение: Проверьте настройки хостинга, firewall, исходящие соединения PHP. - Ошибка: Кеширование мешает видеть обновления.
Решение: Очистите кеш сайта и браузера.
Практические советы по безопасности и производительности
- Используйте HTTPS на новом домене — это обязательно для корректной работы REST API и автообновлений.
- Проверяйте права доступа к файлам плагинов — автообновления требуют записи в директории плагинов.
- Ограничьте IP-адреса, с которых разрешена активация лицензий, если лицензия поддерживает такую настройку.
- Используйте WP-Cron для регулярной проверки обновлений, но при большом трафике лучше настроить системный cron.
Сравнение способов обновления лицензии после смены домена
| Метод | Преимущества | Недостатки |
|---|---|---|
| Ручное обновление через админ-панель | Простота, не требует кода | Может отсутствовать в некоторых решениях, риск ошибки |
| SQL-запросы в базе | Быстрое массовое обновление, полный контроль | Риск повредить базу, требует доступа и знаний |
| REST API вызовы | Автоматизация, подходит для интеграций и скриптов | Требует настройки API и понимания работы |