Проблема интеграции WP-электронной коммерции и W3-Всего кэша [закрыта]
Моя корзина покупок кэшируется w3 total кэш. Это ожидаемое поведение по умолчанию. Дело в том, что я не могу найти простого решения для этого.
Я показываю свою корзину покупок почти на каждой странице, поэтому использование отклоненных файлов cookie или чего-то подобного не является вариантом. Можно ли указать w3 total cache не кэшировать ни один php-файл, например cart_widget.php? Или какой-то другой обходной путь?
Я знаю, что есть возможность загрузить корзину через ajax, так как плагин не кэширует запросы на получение с параметрами (по умолчанию). Тем не менее, я хотелось бы избежать этого дополнительного запроса.
РЕДАКТИРОВАТЬ: Кроме того, общий кэш w3 не восстанавливает страницу при редактировании продукта, есть ли простой способ указать общему кэшу w3 очистить кэш для одной страницы?
2 answers
W3 Total Cache - это очень продвинутый плагин, который встроен в способы обработки практически любой ситуации.
Чтобы исключить страницу из кэширования, используйте одну из следующих команд ниже:
define('DONOTCACHEPAGE', true);
Disables page caching for a given page.
define('DONOTCACHEDB', true);
Disables database caching for given page.
define('DONOTMINIFY', true);
Disables minify for a given page.
define('DONOTCDN', true);
Disables content delivery network for a given page.
define('DONOTCACHCEOBJECT', true);
Disables object cache for a given page.
Чтобы заставить W3 полностью очистить кэш вашего продукта, вы можете подключить следующую функцию при сохранении продукта:
w3tc_pgcache_flush_post($post_id);
Для реализации кэширования фрагментов оберните функции или строки кода, которые вы не хотите кэшировать в mfunc:
Example 1:
<!-- mfunc any PHP code --><!-- /mfunc -->
Example 2:
<!-- mfunc -->any PHP code<!-- /mfunc -->
Example 3:
<!--MFUNC -->
echo rand();
<!--/mfunc -->
Example 4:
<!-- mclude path/to/file.php --><!-- /mclude -->
Example 5:
<!-- mclude -->path/to/file.php<!-- /mclude -->
W3, как и все другие плагины такого рода, кэширует вывод страницы в статическом файле. В принципе, вы не можете допустить, чтобы часть статического файла была нестатичной.
Я не эксперт в этой области, но я бы предложил все-таки заглянуть в файлы cookie. Например, вы можете попытаться оставить кэш для страниц с пустой корзиной, но заставить заполненную корзину установить некоторые файлы cookie и пропустить кэширование для этого.