Почему лицензионные ключи перестают работать после миграции WooCommerce сайта?
При переносе WooCommerce сайта на новый домен или сервер часто возникают проблемы с активацией лицензий плагинов. Это связано с тем, что большинство систем лицензирования привязывают ключи к домену, IP или базе данных. Если эти параметры изменились, лицензия становится недействительной.
Основные причины:
- Изменение доменного имени сайта;
- Изменение IP адреса сервера;
- Изменение структуры URL (например, добавление или удаление www);
- Сброс или очистка базы данных, где хранились данные активации;
- Кэширование и CDN, которые мешают корректной проверке лицензии.
Диагностика проблемы с лицензиями после миграции
Чтобы точно определить, почему лицензия не активируется:
- Проверьте правильность настроек домена и URL в WooCommerce и WordPress (
Settings > General). - Убедитесь, что лицензия поддерживает работу на новом домене (проверьте условия лицензирования плагина).
- Проверьте логи ошибок плагина лицензирования (если есть). Обычно они находятся в папке
wp-content/uploads/plugin-name/logsили доступны через панель администратора. - Проверьте ответ API лицензирования, если используется удалённый сервер активации.
- Проверьте кэширование: отключите все кеширующие плагины и CDN временно.
Пошаговое решение: как исправить ошибки лицензий после миграции WooCommerce
1. Обновление домена в базе лицензий
Если у вас есть доступ к лицензионному серверу или панели управления лицензиями, обновите привязку лицензии на новый домен:
UPDATE wp_licenses SET domain = 'new-domain.ru' WHERE license_key = 'YOUR_LICENSE_KEY';Если лицензия привязана к домену, такой запрос обновит привязку. Если у вас нет доступа к базе, обратитесь к разработчику плагина.
2. Очистка кэша и куки
Убедитесь, что на клиенте нет старых кэшей, которые могут блокировать активацию:
- Очистите кэш браузера;
- Отключите плагины кеширования: WP Super Cache, W3 Total Cache, LiteSpeed Cache и др.;
- Отключите CDN (Cloudflare, BunnyCDN и т.п.) временно.
3. Принудительная повторная активация лицензии через код
Для некоторых плагинов можно добавить код для принудительной деактивации и повторной активации лицензии. Пример для WooCommerce плагина, использующего стандартную функцию:
function force_reactivate_license() {
if ( ! class_exists('WC_Plugin_License_Manager') ) {
return;
}
$license_manager = WC_Plugin_License_Manager::instance();
$license_key = get_option('plugin_license_key');
if ( $license_key ) {
$license_manager->deactivate_license( $license_key );
$license_manager->activate_license( $license_key );
}
}
add_action('admin_init', 'force_reactivate_license');Этот код деактивирует и активирует лицензию заново при заходе в админку. Обязательно удалите его после успешной активации.
4. Проверка конфигурации URL в WordPress
Убедитесь, что в Settings > General правильно указаны WordPress Address (URL) и Site Address (URL). Они должны совпадать с новым доменом без лишних пробелов или слэшей.
Проверка результата после внедрения
- Проверьте статус лицензии в панели управления плагином — должна отображаться как активная.
- Обновите страницу с настройками лицензии и убедитесь, что нет ошибок активации.
- Попробуйте запустить автообновление плагина — если лицензия работает, обновление пройдет успешно.
- Проверьте логи активации — в случае успешной активации ошибки отсутствуют.
Частые ошибки и как их исправить
- Ошибка «Лицензия недействительна для домена»: проверьте, что домен совпадает с тем, что указан в лицензии. Если нет — обновите привязку лицензии у разработчика или в панели управления.
- Ошибка «Превышено количество активаций»: деактивируйте лицензию на старом сайте или обратитесь в поддержку для сброса активаций.
- Ошибка соединения с лицензионным сервером: проверьте, не блокирует ли сервер доступ (firewall, IP restrictions), а также правильность URL API в настройках плагина.
- Кеширование мешает активации: временно отключите все кеширующие механизмы и CDN.
Практические советы по безопасности и производительности
- Храните лицензионные ключи в зашифрованном виде, например, используя
openssl_encryptпри сохранении иopenssl_decryptпри использовании. - Минимизируйте количество запросов к лицензионному серверу, используя кэш ответа с помощью Transients API (
set_transient,get_transient). - Ограничьте права доступа к страницам управления лицензиями только администраторам.
- Для повышения безопасности используйте HTTPS для всех запросов к лицензионным серверам.
Сравнение способов решения проблем с лицензиями после миграции
| Метод | Описание | Плюсы | Минусы |
|---|---|---|---|
| Обновление домена в базе лицензий | Ручное изменение или обновление привязки лицензии к новому домену | Гарантированное решение, если есть доступ к базе | Требует доступа к лицензионному серверу/базе |
| Принудительная повторная активация | Код для деактивации и активации лицензии заново | Автоматизирует процесс без доступа к базе | Может не сработать при ограничениях на количество активаций |
| Отключение кеширования и CDN | Временное отключение механизмов, мешающих проверке | Простое действие, не требует прав доступа | Временное снижение производительности сайта |