WooCommerce and WCML Integration
ZiziCache adds automatic cache safety for WooCommerce pages and currency‑aware cache variants for WooCommerce Multilingual (WCML).
WooCommerce: cache safety
- Cart, checkout, and account pages are excluded from page cache.
- WooCommerce admin screens and WooCommerce AJAX requests are excluded from caching.
WooCommerce: product‑aware purge & preload
- On product updates or stock changes, ZiziCache purges the product URL, the shop page, and related taxonomy archives.
- When orders are created or change status, related product URLs are purged.
- When preloading is enabled, the same URLs are queued for preload after purge.
WooCommerce: cache variations for filters
- Attribute filters (
filter_{attribute}) and common WooCommerce query parameters are added to the cache include list (e.g.orderby,min_price,max_price,rating_filter,product_cat,product_tag,on_sale,in_stock).
WCML (WooCommerce Multilingual)
- When multi‑currency is enabled, WCML sets the
wcml_currencycookie and ZiziCache uses it to create currency‑specific cache variants (suffix-USD,-EUR, etc.). - Currency cookies are validated and removed if invalid.
What it does not do
- No dedicated WooCommerce/WCML settings in the ZiziCache UI.
- No automatic per‑currency page purge beyond the standard WooCommerce product hooks.
Configuration tips
- Use Cache → Exclusions for any additional dynamic WooCommerce pages beyond cart/checkout/account.
- Ensure WCML multi‑currency is enabled so the
wcml_currencycookie is present.
How to verify
- Visit cart/checkout/account pages and confirm
x-zizi-cache-cacheis BYPASS or no cache file is created. - Update a product and confirm the product and shop pages are purged (and preloaded if enabled).
- Switch currency and confirm cache file names include the currency suffix from
wcml_currency.
Disable the integration (optional)
add_filter('zizi_cache_disabled_integrations', function($integrations) {
$integrations[] = ZiziCachePluginsIntegrationsWooCommerce::class;
$integrations[] = ZiziCachePluginsIntegrationsWCML::class;
return $integrations;
});