Problema de integración de WP-e-Commerce y W3-Total-Cache [cerrado]

2

Mi carrito de compras se almacena en caché por w3 total cache Este es el comportamiento predeterminado esperado. La cosa es que no puedo encontrar una solución fácil para esto.

Estoy mostrando mi carrito de compras en casi todas las páginas, por lo que usar cookies rechazadas o algo similar no es una opción. ¿Es posible decirle a w3 total cache que no almacene en caché un solo archivo php como cart_widget.php? ¿O alguna otra solución?

Sé que existe la posibilidad de cargar el carro a través de ajax ya que el complemento no almacena en caché las solicitudes GET con parámetros (de forma predeterminada). Sin embargo, me gustaría evitar esa solicitud adicional.

EDITAR: Además, la memoria caché total de w3 no regenera la página cuando edito el producto. ¿Existe una manera fácil de indicar a la memoria caché total de w3 que vacíe la memoria caché para una sola página?

    
pregunta Lombo 03.12.2010 - 18:54

2 respuestas

6

W3 Total Cache es un complemento muy avanzado que ha incorporado formas de manejar casi cualquier situación.

Para excluir una página de la caché, use uno de los siguientes comandos a continuación:

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.

Para hacer que W3 Total vacíe el caché en la edición de su producto, puede enganchar la siguiente función cuando se guarda el producto:

w3tc_pgcache_flush_post($post_id);

Para implementar el almacenamiento en caché de fragmentos, ajuste las funciones o líneas de código que no desea almacenar en un 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 -->
    
respondido por el Chris_O 03.12.2010 - 20:48
0

W3, como todos los demás complementos de este tipo, almacena en caché el resultado de la página en un archivo estático. Básicamente, no es posible que parte del archivo estático sea no estático.

No soy un experto en este campo, pero sugeriría buscar cookies después de todo. Por ejemplo, puede intentar dejar la memoria caché para las páginas con el carrito vacío, pero haga que el carrito lleno configure algunas cookies y omita el almacenamiento en caché de eso.

    
respondido por el Rarst 03.12.2010 - 19:39

Lea otras preguntas en las etiquetas