WPML
Make CartPops follow the visitor's language on WPML sites, and translate the text you enter in CartPops settings.
This page covers the common WPML issues for CartPops: loading the drawer in the right language, and translating the text you write in CartPops settings.
The drawer loads in the wrong language or links to the wrong checkout
CartPops loads and updates the cart with REST requests, for example when an item is added or a coupon is applied. These requests are not normal page views, so WPML needs a language cookie to know which language they belong to.
Turn on Language filtering for AJAX operations in WPML:
- Go to WPML > Languages.
- Scroll to Language filtering for AJAX operations and turn it on.
- Save, then clear your caches.

You can read more about this setting in the WPML documentation.
If the language is still wrong for some visitors, check your caching setup. A full-page cache must keep a separate copy for each language. See Caching.
Translate CartPops text
CartPops ships a wpml-config.xml file, so WPML finds the text fields below by itself. They appear in WPML > String Translation, under the admin_texts_cartpops_settings domain. If you do not see them, search for the text you entered, or run a scan from the String Translation screen.
| Where you set it in CartPops | Edition |
|---|---|
| Drawer: Checkout Button Text | Free |
| Recommendations: Heading | Free |
| Smart add-ons: the shipping protection Label and Description | Pro |
| Bundle Builder: Heading | Pro |
Pro text that grows with your setup is registered with WPML under the CartPops context instead of through the config file:
- The Progress Message and Qualified Message of each Shipping Meter reward tier.
- The text of each Smart Bar item: its message, expiry message, spotlight message, and link text.
These strings are registered when WordPress loads (the init hook). Save your settings, load any page once, then check WPML > String Translation for the CartPops domain.
Other drawer text, such as button labels and screen reader messages, comes from CartPops’ translation files. To translate those, use a translation plugin such as Loco Translate. The text domain is cartpops.