Home›Support›English Support›[Resolved] error display for [esi wpml_language_selector_widget] in secondary language in Bricks editor
[Resolved] error display for [esi wpml_language_selector_widget] in secondary language in Bricks editor
This thread is resolved. Here is a description of the problem and solution.
Problem: The client is experiencing an error with the [esi wpml_language_selector_widget] in the Bricks editor for the secondary language, and issues with currency not updating correctly in the cart when using ESI blocks. Solution: For the Bricks editor issue, we recommend wrapping the shortcode in a conditional to differentiate between the Bricks editor and the frontend. Use the following code:
Remember, WPML does not control how LiteSpeed parses or caches ESI blocks, and issues might arise if ESI is not enabled correctly or if the theme or builder does not support ESI context.
If these solutions do not resolve your issues or seem outdated, please check related known issues, verify the version of the permanent fix, and confirm that you have installed the latest versions of themes and plugins. We highly recommend opening a new support ticket if problems persist.
This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
Background of the issue:
I am trying to resolve an error display for [esi wpml_language_selector_widget] in the secondary language within the Bricks editor. Please check this video for more details: hidden link.
Symptoms:
In the frontend, everything seems to be okay. However, in the Bricks editor, the secondary language displays an error.
Questions:
Why is there an error display in the Bricks editor for the secondary language?
How can I fix the error display for [esi wpml_language_selector_widget]?
New issue after turning into ESI block. Switching currency, it would not reflect correctly in cart, no matter refreshing. The currency would always stay USD, though the currency has changed and displayed the switching currency in the page.
Languages: English (English )Spanish (Español )German (Deutsch )
Timezone: America/Lima (GMT-05:00)
WPML would not be directly responsible for fixing ESI-related issues—especially those tied to rendering [esi wpml_language_selector_widget] or [esi wpml_currency_switcher_widget]—because ESI (Edge Side Includes) is a feature of the LiteSpeed Cache plugin and server, not WPML itself.
WPML’s Role
- WPML ensures its shortcodes (language switcher, currency switcher, etc.) are translatable and renderable.
- It does not control how LiteSpeed parses or caches ESI blocks.
- WPML can offer guidance or compatibility notes, but does not patch ESI behavior.
LiteSpeed’s Role
- LiteSpeed Cache plugin parses [esi ...] shortcodes and decides how to render them.
If the shortcode fails to render (e.g. shows raw text or errors in Bricks editor), it’s often due to:
- ESI not being enabled correctly
- Theme or builder not supporting ESI context
- Session or user-specific data not resolving inside the ESI block
So there are only below 4 cookies WPML uses, right?
wp-wpml_current_language
wp-wpml_current_admin_language_{hash}
_icl_visitor_lang_js
wpml_browser_redirect_test
I am here hooking into "woocommerce_before_main_content" - depending on where you want the currency switcher to appear, you could also use:
- wp_header
- wp_footer
- woocommerce_after_cart_table
- woocommerce_before_cart_table
etc.
---
About WCML Cookies:
Those are usually only used if you use currency by location. Otherwise, WPML's language cookie would be sufficient to display currencies based onthe site language.