Как создать и поддерживать блок WooCommerce отдельно?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как создать и поддерживать блок WooCommerce отдельно?

Сообщение Anonymous »

WooCommerce предлагает блок Гутенберга под названием «Продукты по категориям». Мы используем несколько примеров этого на целевой странице нашего сайта. С помощью плагина Query Monitor мы заметили, что количество запросов к БД слишком велико. Как только мы удалили часть или весь экземпляр этого блока, количество запросов к БД значительно сократилось (с ~550 до ~80).
Посмотрев на его источник, я заметил что он кэширует только те идентификаторы, которые необходимо разрешить. Однако сведения о продукте необходимо каждый раз получать из БД. Поэтому я изменил метод render, чтобы просто кэшировать окончательный вывод HTML и вместо этого показывать его. Это, как и ожидалось, резко сократило количество запросов к базе данных.
В идеале я хотел бы изменить поведение, написав собственный плагин/тему. К сожалению, до сих пор я не нашел правильного решения этой проблемы. Блоки WC кажутся тесно интегрированными и имеют внутренние зависимости. Кажется, раньше был способ упаковать блоки отдельно как отдельный плагин, но он, похоже, удален и больше не поддерживается.
В настоящее время я делаю следующее, чтобы получить он работает, но включает в себя использование отражения, и поэтому я бы хотел этого избежать:
  • Используйте фильтр JS Gutenberg для получения текущего объявленного render_callback, сохранить ссылку на объект.
  • Используйте PHP ReflectionClass для изменения свойств объекта и доступа к ним. используйте их в моей пользовательской функции рендеринга.
  • Используйте фильтр JS Gutenberg, чтобы изменить render_callback на мою пользовательскую функцию.


Подробнее здесь: https://stackoverflow.com/questions/792 ... separately
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»