Проблема интеграции WP-электронной коммерции и W3-Всего кэша [закрыта]


Моя корзина покупок кэшируется w3 total кэш. Это ожидаемое поведение по умолчанию. Дело в том, что я не могу найти простого решения для этого.

Я показываю свою корзину покупок почти на каждой странице, поэтому использование отклоненных файлов cookie или чего-то подобного не является вариантом. Можно ли указать w3 total cache не кэшировать ни один php-файл, например cart_widget.php? Или какой-то другой обходной путь?

Я знаю, что есть возможность загрузить корзину через ajax, так как плагин не кэширует запросы на получение с параметрами (по умолчанию). Тем не менее, я хотелось бы избежать этого дополнительного запроса.

РЕДАКТИРОВАТЬ: Кроме того, общий кэш w3 не восстанавливает страницу при редактировании продукта, есть ли простой способ указать общему кэшу w3 очистить кэш для одной страницы?

Author: RolandoMySQLDBA, 2010-12-03

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 -->
 6
Author: Chris_O, 2020-06-15 08:21:38

W3, как и все другие плагины такого рода, кэширует вывод страницы в статическом файле. В принципе, вы не можете допустить, чтобы часть статического файла была нестатичной.

Я не эксперт в этой области, но я бы предложил все-таки заглянуть в файлы cookie. Например, вы можете попытаться оставить кэш для страниц с пустой корзиной, но заставить заполненную корзину установить некоторые файлы cookie и пропустить кэширование для этого.

 0
Author: Rarst, 2010-12-03 18:39:49