- Что нового в HPOS
- Как это работало раньше
- Как включить HPOS
- Хранение данных заказов
- Синхронизация
- Работа с плагинами (Custom Post Types)
- Несовместимые плагины
- Полнотекстовый поиск (экспериментально)
- Как отключить HPOS
- Для разработчиков
- Часто задаваемые вопросы
- Обязательно ли включать HPOS?
- Плагин не поддерживает HPOS — что делать?
- Подходит ли HPOS для небольших магазинов?
- Будет ли мой магазин автоматически переведён на HPOS?
- Есть ли требования к хостингу?
High-Performance Order Storage (HPOS) (ранее Custom Order Tables) — это решение для WooCommerce, которое использует более понятную и эффективную структуру базы данных для хранения заказов.
HPOS использует архитектуру CRUD (создание, чтение, обновление, удаление) и хранит данные заказов в отдельных таблицах, оптимизированных под запросы WooCommerce. Это снижает нагрузку на базу данных и улучшает производительность магазина.
Что нового в HPOS
HPOS улучшает три ключевых параметра интернет-магазина:
- Масштабируемость
При росте количества заказов увеличивается нагрузка на базу данных. HPOS использует отдельные таблицы для заказов, адресов и индексов, что снижает количество операций чтения и записи и уменьшает нагрузку. Это позволяет магазину масштабироваться без сложной оптимизации. - Надёжность
HPOS упрощает резервное копирование и восстановление данных. Снижается риск потери заказов, данных клиентов и остатков. Также уменьшается вероятность конфликтов при записи данных. - Простота
Данные заказов больше не хранятся в общей таблице_posts. Теперь они находятся в отдельных таблицах, что упрощает работу с базой, разработку и поддержку.
Как это работало раньше
До версии WooCommerce 8.2 данные заказов хранились в таблицах _posts и _postmeta.
С HPOS появились отдельные таблицы:
_wc_orders_wc_order_addresses_wc_order_operational_data_wc_orders_meta
Это уменьшает нагрузку и ускоряет работу магазина.
Как включить HPOS
Перед включением убедитесь, что все плагины, использующие произвольные типы записей (например Woo Subscriptions, WooCommerce Bookings), активны. Иначе возможны расхождения данных.
В новых установках WooCommerce (с версии 8.2) HPOS включён по умолчанию.
Чтобы включить HPOS в существующем магазине:
- Перейдите в WooCommerce → Настройки → Дополнительно → Функции
- Включите Режим совместимости (синхронизация заказов с таблицей записей)
- Дождитесь синхронизации:
- Процесс выполняется автоматически
- Можно запустить вручную в WooCommerce → Статус → Запланированные действия
- За один раз обрабатывается 25 заказов
- После синхронизации включите HPOS

Также можно использовать CLI-команду:
wp wc cot sync Повторное включение режима совместимости снова запустит синхронизацию при необходимости.
Хранение данных заказов
- Хранение записей WordPress (устаревшее) — данные хранятся в
_postsи_postmeta - Высокопроизводительное хранилище заказов (рекомендуется) — используются новые таблицы WooCommerce
- Режим совместимости — данные синхронизируются между всеми таблицами



Синхронизация
Если включены HPOS и режим совместимости, WooCommerce синхронизирует данные между таблицами _posts, _postmeta и новыми таблицами заказов.
Работа с плагинами (Custom Post Types)
Плагины, использующие произвольные типы записей, продолжают хранить данные в таблицах WordPress. При включении HPOS данные заказов переносятся в новые таблицы.
Если отключить плагин до миграции, возможны расхождения данных.
Если это уже произошло:
- Перейдите в WooCommerce → Настройки → Дополнительно → Функции
- Верните хранение на Хранилище записей WordPress
- Дождитесь синхронизации
- Снова включите HPOS
Несовместимые плагины
Если установлен плагин, не поддерживающий HPOS, переключение будет недоступно.
- Нажмите Просмотреть и управлять, чтобы увидеть список
- Или перейдите по адресу:
https://example.com/wp-admin/plugins.php?plugin_status=incompatible_with_feature&feature_id=custom_order_tables
Если плагин не поддерживает HPOS, обратитесь к его разработчику и попросите добавить поддержку.
Полнотекстовый поиск (экспериментально)
С WooCommerce 9.0 доступен экспериментальный полнотекстовый поиск заказов.
- Перейдите в WooCommerce → Настройки → Дополнительно → Функции
- Убедитесь, что включён HPOS
- В разделе Экспериментальные функции включите HPOS Full-text search indexes
Важно: работает только при включённом HPOS.

Как отключить HPOS
Если возникли проблемы или плагины не поддерживают HPOS:
Перейдите в WooCommerce → Настройки → Дополнительно → Функции и включите Режим совместимости, затем переключите хранение на Хранилище записей WordPress (устаревшее).

После синхронизации можно отключить режим совместимости.
Для разработчиков
Если вы дорабатываете магазин или плагины, изучите документацию: Upgrade Recipe Book
Часто задаваемые вопросы
Обязательно ли включать HPOS?
Нет. Функция необязательная и включается вручную. Вы можете использовать её в любой момент.
Плагин не поддерживает HPOS — что делать?
Обратитесь к разработчику плагина и попросите добавить поддержку. Пока можно продолжать использовать старый режим.
Подходит ли HPOS для небольших магазинов?
Да. HPOS полезен для магазинов любого размера.
Будет ли мой магазин автоматически переведён на HPOS?
Нет. Переключение выполняется вручную.
Есть ли требования к хостингу?
Нет. Любой хостинг, поддерживающий WordPress и WooCommerce, подходит.
