I am writing to report a critical performance issue that seems to have started after upgrading WPML Multilingual & Multicurrency for WooCommerce to version 5.5.5, which I have traced to a change in how WCML injects multi-currency price cache HTML into price strings.
## The Problem
My wp_woocommerce_sessions database table grew from ~1-2GB to over 4GB within a short period, with ~65,000 entries. Each session entry is approximately 115KB in size, whereas previously sessions were a few KB each.
## Root Cause Identified
After analyzing the raw session data in the database, I found that each session contains a key called fs_free_shipping_notice (written by the Flexible Shipping plugin). Inside this key, WCML is injecting a wmc-price-cache-list HTML blob containing pre-rendered price strings for every single supported currency (~100 currencies), for every price threshold value.
For a single $100.00 free shipping threshold, WCML is generating and storing a full HTML price string for all ~100 currencies (USD, EUR, CHF, GBP, PLN, AED, KRW, JPY, CNY, AUD, CAD, NOK, SEK, DKK, CZK, AFN, ALL, AMD... and so on). This alone accounts for ~115KB per session entry.
## This Is a Recent Regression
This behavior started approximately after upgrading WPML Multilingual & Multicurrency for WooCommerce - it was NOT happening before. Session sizes were normal prior to this.
## Evidence
Here is a sample of the bloated data structure stored in each session. The wmc_price_cache attribute inside the price HTML contains pre-rendered strings for every currency:
<span data-wmc_price_cache="{"USD":...,"EUR":...,"CHF":...[~100 more currencies]}">
I have also contacted Flexible Shipping support, but since the oversized data originates from WCML's currency cache injection, I believe the fix needs to come from the WCML side.
While a supporter gets assigned to your request, I would like to pass some information to our development team to do some initial checks. To do so, I would need you to share some more information about your setup:
- Some description on your WCML configuration (like your currencies setup).
- A confirmation of the Flexible Shipping plugin being used (Is it https://wordpress.org/plugins/flexible-shipping/? Are you using other related plugin, like https://wordpress.org/plugins/octolize-shipping-notices/?).
To debug this issue further, I would need to check your site settings once, for this I would need temporary access (wp-admin and ftp) to your site.
So could you please provide me with those details, you will find the needed fields for this below the comment area when you log in to leave your next reply. hidden link