Диагностика проблем при миграции WooCommerce
Миграция WooCommerce на новый домен — частая задача, которая часто сопровождается ошибками: потеря ссылок на изображения, нарушение работы AJAX в корзине, проблемы с SSL, некорректные URL в заказах и письмах. Чтобы выявить проблемы, проверьте следующие моменты:
- Работают ли страницы товаров и корзины без ошибок;
- Отображаются ли изображения товаров корректно;
- Корректно ли отправляются письма с правильными ссылками;
- Работают ли AJAX-запросы (добавление товара в корзину без перезагрузки);
- Все ли ссылки в базе данных обновлены под новый домен.
Как проверить работу AJAX в корзине
Откройте консоль браузера (F12) и перейдите на страницу товара. Попробуйте добавить товар в корзину — если в консоли возникают ошибки JS или запросы на старый домен, значит AJAX не работает корректно.
Пошаговое решение проблем миграции WooCommerce
1. Резервное копирование и подготовка
Перед миграцией сделайте полный бэкап файлов и базы данных. Убедитесь, что на новом домене установлена та же версия WooCommerce и WordPress.
2. Поиск и замена URL в базе данных
Для корректной работы нужно заменить все упоминания старого домена новым внутри базы данных. Используйте WP-CLI или плагин Better Search Replace.
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --skip-columns=guidВажно: не менять поле guid, чтобы не нарушить RSS и внутренние ссылки.
3. Обновление настроек WooCommerce
Проверьте в WooCommerce > Настройки > Общие разделы:
- URL магазина;
- URL страницы корзины, оформления заказа и аккаунта;
- SSL — убедитесь, что сертификат установлен и активен.
4. Очистка кеша и перегенерация ссылок
Очищайте кеш плагинов (например, WP Rocket, W3 Total Cache) и браузера. Перейдите в Настройки > Постоянные ссылки и нажмите «Сохранить», чтобы перегенерировать правила URL.
5. Проверка и исправление ссылок в письмах
WooCommerce иногда кэширует URL в шаблонах email. Очистите временные файлы и, если нужно, перегенерируйте шаблоны или проверьте, нет ли жестко прописанных ссылок в кастомных шаблонах.
6. Проверка работы AJAX корзины
Если добавление в корзину не работает, проверьте, что URL для AJAX-запросов обновлен:
add_filter('woocommerce_ajax_url', function() {
return admin_url('admin-ajax.php');
});Также убедитесь, что в wp_enqueue_script для скриптов корзины указан правильный URL.
Проверка результата после миграции
После выполнения всех шагов проверьте:
- Работают ли все страницы магазина;
- Корректно ли отображаются изображения;
- Добавляется ли товар в корзину без перезагрузки;
- Письма содержат правильные ссылки;
- Отсутствуют ошибки в консоли браузера и логах сервера.
Частые ошибки и как их исправить
Ошибка 1: Изображения не отображаются или ведут на старый домен
Причина — неполная замена URL в базе данных. Проверьте таблицу wp_posts, поле post_content и wp_postmeta. Используйте WP-CLI с сериализацией данных или плагин Better Search Replace.
Ошибка 2: AJAX корзина не работает
Проверьте правильность URL для AJAX-запросов и отсутствие блокировок на сервере (например, ModSecurity). Убедитесь, что в functions.php нет переопределений, которые ломают AJAX.
Ошибка 3: Письма ссылаются на старый домен
Проверьте шаблоны email и настройки WooCommerce. Иногда помогает удаление и повторное сохранение настроек email.
Практические советы по безопасности и производительности
- Перед миграцией отключите все неактивные плагины, чтобы избежать конфликтов.
- Используйте SSL на новом домене — это критично для WooCommerce.
- Оптимизируйте базу данных после миграции, удалив транзиенты и ревизии с помощью плагина Clearfy Pro (подробнее).
- Настройте правильные права доступа на файлы и папки — обычно 644 для файлов и 755 для папок.
- Проверьте, что на сервере включены необходимые PHP-модули, особенно
curl,mbstringиjson.
Сравнение способов замены URL в базе данных
| Метод | Преимущества | Недостатки |
|---|---|---|
| WP-CLI search-replace | Быстро, поддержка сериализованных данных, можно автоматизировать | Требует доступа к хостингу по SSH |
| Плагин Better Search Replace | Удобный интерфейс, подходит для новичков | Может не сработать с большими базами, требует осторожности |
| Ручная правка SQL | Гибкость | Высокий риск повреждения данных, не учитывает сериализацию |