Диагностика проблемы: почему не переводятся описания и метаданные товаров WooCommerce
При создании многоязычного магазина на WooCommerce часто возникает проблема: основные поля товаров переводятся корректно, а метаданные (например, атрибуты, SEO-поля, пользовательские поля) и описания остаются на одном языке. Это ведет к плохому UX и снижению позиций в поисковых системах.
Основные причины такой ситуации:
- Плагины перевода не поддерживают автоматический перевод метаданных WooCommerce по умолчанию.
- Тексты описаний содержат HTML, короткие коды или динамические данные, которые не передаются для перевода.
- SEO-плагины сохраняют метаданные отдельно и не интегрируются с переводчиками.
Пошаговое решение: как автоматически переводить описания и метаданные WooCommerce
1. Выбор подходящего плагина для автоматического перевода
Используйте плагин с поддержкой WooCommerce и метаданных, например WPGPT от WPShop. Он умеет работать с полями товаров, в том числе с пользовательскими метаданными и SEO-полями.
2. Настройка автоперевода для описаний и метаданных
После установки и активации WPGPT добавьте следующий код в functions.php вашей дочерней темы, чтобы задать перевод для нужных метаполей:
add_filter('wpgpt_translate_meta_keys', function($keys) {
// Добавьте сюда все нужные метаполя WooCommerce
$keys[] = '_yoast_wpseo_title';
$keys[] = '_yoast_wpseo_metadesc';
$keys[] = '_product_attributes';
$keys[] = '_custom_product_field'; // пример пользовательского поля
return $keys;
});Это позволит плагину автоматически переводить указанные поля при обновлении товара.
3. Автоматический перевод описания товара с HTML и шорткодами
Для корректного перевода описания с сохранением HTML используйте хук WPGPT перед отправкой текста в API:
add_filter('wpgpt_before_translate_content', function($content, $post_id) {
// Очистить шорткоды, если они не должны переводиться
$content = strip_shortcodes($content);
// Можно добавить дополнительную очистку HTML
return $content;
}, 10, 2);Проверка результата: как убедиться, что перевод работает корректно
- Обновите любой товар в WooCommerce — описание и метаданные должны автоматически переводиться на выбранные языки.
- Проверьте в админке переводы через типовой редактор слов или раздел с переводами — они должны появиться сразу после обновления.
- Откройте страницу товара на фронтенде для разных языков, убедитесь, что описания и SEO-теги отображаются на нужном языке.
Частые ошибки и как их исправить
- Плагин не переводит метаданные: проверьте, что в фильтре
wpgpt_translate_meta_keysперечислены все нужные ключи, включая пользовательские поля и SEO-теги. - Перевод ломает HTML или шорткоды: используйте фильтр
wpgpt_before_translate_contentдля очистки контента от шорткодов и лишних тегов перед отправкой на перевод. - Не отображаются переводы на фронтенде: перепроверьте настройку мультиязычности и поддержку перевода в активной теме и плагинах SEO.
- Переводы обновляются с задержкой: возможно, настроен кэш. Очистите кэш сайта и браузера.
Практические советы по безопасности и производительности
- Не переводите через API слишком часто — добавьте лимиты вызовов, чтобы избежать блокировок.
- Кэшируйте переводы в базе данных, например, используя Transients API, чтобы не посылать повторные запросы.
- Ограничьте переводы только необходимыми полями, чтобы снизить нагрузку.
- Используйте HTTPS для всех запросов к API перевода.
Сравнение вариантов решения автоматического перевода WooCommerce
| Метод | Поддержка метаданных | Удобство настройки | Производительность | Стоимость |
|---|---|---|---|---|
| WPGPT с фильтрами | Да, полная | Средняя, требует кода | Высокая при правильном кэшировании | Платный плагин |
| Плагины-переводчики (WPML, Polylang) | Ограничено, требует доп. модулей | Высокое, UI | Средняя | Бесплатно / Платно |
| Ручной перевод | Полная, но трудоемкая | Низкое | Высокая | Бесплатно, но требует времени |