В WooCommerce 11.0 объектное кэширование товаров будет включено по умолчанию для всех новых магазинов. Уже существующие магазины не будут затронуты и продолжат работать с текущей конфигурацией.
- Объектное кэширование позволяет сократить количество дублируемых загрузок товаров
- В WooCommerce 10.6 изменены параметры совместимости по умолчанию
- Для новых магазинов в WooCommerce 11.0 функционал будет включен автоматически
- Расширения, использующие стандартные WooCommerce API, не требуют изменений
- Что дальше
Объектное кэширование позволяет сократить количество дублируемых загрузок товаров
Функционал был представлен как эксперимент в WooCommerce 10.5. Он перехватывает вызовы wc_get_product() и предоставляет объекты товаров из кэша в оперативной памяти с областью видимости запроса:
- Кэш не является постоянным – он очищается между запросами.
- Повторные вызовы одного и того идентификатора продукта в рамках одного запроса возвращают клонированные экземпляры, а не ссылки, потому вызывающие стороны не могут случайно обмениваться изменяемым состоянием.
- Ручное управление кэшем не требуется.
Показатели производительности, указанные в изначальном анонсе, остаются в силе – оба улучшения касаются скорости загрузки. Вариативные товары загружаются примерно на 9–12% быстрее на страницах товаров, а комплекты товаров обрабатываются на 6-12% быстрее при оформлении заказа.
В WooCommerce 10.6 изменены параметры совместимости по умолчанию
Стандартное объявление совместимости плагина для этой функции было изменено с INCOMPATIBLE на COMPATIBLE.
В течение экспериментального периода проблем с совместимостью в экосистеме расширений выявлено не было, поэтому расширения без явного указания совместимости теперь считаются совместимыми по умолчанию. Расширения, явно заявляющие о своей несовместимости с product_instance_caching, будут отображать стандартное уведомление об этом на экране Features.
Для новых магазинов в WooCommerce 11.0 функционал будет включен автоматически
Для новых магазинов, работающих на WooCommerce 11.0 или более поздних версиях, объектное кэширование товаров будет включено автоматически во время установки.
Регистрация этой возможности сама по себе сохраняет значение enabled_by_default => false, ее включение определяется явно во время установки, а не зависит от состояния флага. Тот же принцип лежит в основе HPOS и других функций.
Существующие магазины, обновившиеся до 11.0, останутся без изменений. Если функционал был ранее отключен (что является дефолтным значением для магазинов, запущенных до выхода 11.0), он останется отключенным после обновления. Если функционал был ранее включен, то останется включенным.
Чтобы включить вручную эту возможность для существующего магазина, перейдите в раздел WooCommerce → Settings → Advanced → Features и активируйте Cache Product Objects.
Расширения, использующие стандартные WooCommerce API, не требуют изменений
Применяются рекомендации по совместимости из первоначального анонса.
Расширения, выполняющие прямые SQL-запросы к данным о товарах без использования стандартных мета-хуков WordPress, могут выдавать устаревшие результаты, если эти запросы обходят хуки, запускающие аннулирование кэша. Расширения, получающие товары исключительно через wc_get_product() и стандартные WooCommerce API, не затронуты.
Что дальше
Это не финальный шаг. Как только уровень внедрения функционала в магазинах окажется достаточным, кэширование будет включено для всех магазинов, в том числе и для уже существующих. Сроки пока не установлены. Решение будет приниматься на основе данных о внедрении.
Если вы столкнулись с неожиданным поведением, создайте тикет в репозитории WooCommerce GitHub.
Источник: https://developer.woocommerce.com
