WooCommerce and WCML E-commerce Optimization

Updated on 10. 2. 2026

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_currency cookie 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_currency cookie is present.

How to verify

  1. Visit cart/checkout/account pages and confirm x-zizi-cache-cache is BYPASS or no cache file is created.
  2. Update a product and confirm the product and shop pages are purged (and preloaded if enabled).
  3. 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;
});
What are your feelings