Перевод статусов заказов WooCommerce: практическое руководство

Почему стоит перевести статусы заказов WooCommerce

Статусы заказов в WooCommerce – это ключевая информация как для администратора, так и для клиентов. При создании многоязычного магазина важно, чтобы эти статусы отображались на языке пользователя, а не по умолчанию на английском. Без перевода статусов возможна путаница, снижается удобство и доверие покупателей.

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

Если вы заметили, что в вашем мультиязычном сайте статусы заказов отображаются только на английском, хотя остальной контент переведен, причина может быть в следующем:

  • Отсутствие перевода строк статусов в файлах .po/.mo вашей темы или плагина
  • Неправильная регистрация кастомных статусов заказов без поддержки локализации
  • Использование нестандартных методов вывода статусов, которые не обрабатываются плагином перевода (WPML, Polylang)

Пошаговое решение: как перевести статусы заказов WooCommerce

1. Проверяем наличие перевода WooCommerce

WooCommerce по умолчанию поставляется с переводами на многие языки, в том числе русский. Убедитесь, что в папке wp-content/languages/plugins/ есть актуальные файлы woocommerce-ru_RU.po и woocommerce-ru_RU.mo. Если файлов нет или они устарели, скачайте свежие с официального репозитория WordPress Translate.

2. Добавляем поддержку перевода кастомных статусов

Если у вас есть кастомные статусы заказов, зарегистрированные через register_post_status, нужно вручную добавить их в массив статусов WooCommerce и обеспечить их перевод. Пример регистрации кастомного статуса с поддержкой локализации:

function register_custom_order_status() {
    register_post_status( 'wc-awaiting-shipment', array(
        'label'                     => _x( 'Ожидание отправки', 'Order status', 'your-textdomain' ),
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop( 'Ожидание отправки <span class="count">(%s)</span>', 'Ожидание отправки <span class="count">(%s)</span>', 'your-textdomain' ),
    ) );
}
add_action( 'init', 'register_custom_order_status' );

function add_custom_order_statuses( $order_statuses ) {
    $order_statuses['wc-awaiting-shipment'] = _x( 'Ожидание отправки', 'Order status', 'your-textdomain' );
    return $order_statuses;
}
add_filter( 'wc_order_statuses', 'add_custom_order_statuses' );

Обратите внимание, что _x() и _n_noop() позволяют использовать перевод в нужном контексте.

3. Используем правильный текстовый домен и файлы перевода

Если вы используете свой плагин или тему для кастомных статусов, убедитесь, что в load_textdomain() загружаются соответствующие файлы перевода. Например:

function load_custom_plugin_textdomain() {
    load_plugin_textdomain( 'your-textdomain', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'load_custom_plugin_textdomain' );

4. Перевод через Poedit или Loco Translate

Чтобы добавить или исправить перевод статусов, можно использовать редакторы переводов:

  • Poedit: скачайте .po файл, добавьте переводы для нужных статусов, экспортируйте .mo.
  • Loco Translate: плагин для WordPress, позволяющий редактировать переводы прямо в админке.

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

Чтобы проверить, что перевод статусов работает:

  • Создайте тестовый заказ и вручную измените его статус на кастомный или стандартный статус, переведенный вами.
  • Откройте страницу «Мои заказы» в пользовательской части сайта на нужном языке (переключите язык).
  • Убедитесь, что статус отображается на выбранном языке.
  • Проверьте в админке WooCommerce, что статусы также отображаются корректно.

Частые ошибки при переводе статусов заказов WooCommerce

  • Отсутствие текстового домена или неправильный домен – перевод не загружается, строки остаются на английском.
  • Регистрация статусов без использования функций локализации – строки не поддаются переводу.
  • Редактирование файлов WooCommerce напрямую – обновления плагина перезапишут изменения.
  • Неправильный путь к файлам перевода – WordPress не находит .mo/.po.
  • Кэширование – иногда старые переводы кэшируются, очистите кэш сайта и браузера.

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

  • Не редактируйте файлы плагинов напрямую — создавайте дочерние темы или собственные плагины для кастомизации.
  • Храните файлы перевода в правильных каталогах (wp-content/languages/plugins/ или wp-content/languages/themes/), чтобы избежать потери при обновлении.
  • Используйте Loco Translate с осторожностью и всегда делайте резервные копии перед изменениями.
  • Оптимизируйте переводы — не добавляйте лишних строк, чтобы не замедлять загрузку.

Сравнение способов перевода статусов заказов WooCommerce

МетодПлюсыМинусы
Использование готовых переводов WooCommerceПростота, поддержка обновлений, надежностьНе подходит для кастомных статусов
Регистрация кастомных статусов с локализациейГибкость, полный контроль, поддержка любых языковТребует знаний PHP и gettext
Редактирование .po/.mo через Poedit или Loco TranslateПрямое редактирование, удобствоРиск потери при обновлении, требует резервного копирования
Как оптимизировать перевод тем и плагинов WordPress для быстродействия
09.01.2026
Как создать собственный виджет для выбора языка в WordPress
23.11.2025
Как автоматизировать перевод сообщений WordPress через хуки и плагины
13.12.2025
Автоматический перевод атрибутов товаров WooCommerce в WordPress
10.05.2026
Как установить и настроить локализацию в своем плагине WordPress
19.03.2026