WPML
Released
October 21, 2026
Channel
Stable
Tested with WordPress
7.1

Changelog

Subscriptions plans, translated extension emails, repaired extension support and faster product pages.

What's new

  • WooCommerce Subscriptions 9 subscription plans are supported, with plan prices and sign-up fees per currency and plans copied to translations.
  • Emails of WooCommerce extensions such as Subscriptions and Bookings are translated through one shared mechanism, so customers get them in their language.
  • Support for Product Bundles, Composite Products, Bookings, The Events Calendar, Gravity Forms and Print Invoices & Packing Lists, which had silently stopped, works again.
  • Amounts and thresholds of WooCommerce extensions convert to the shopper's currency through one multicurrency mechanism.
  • The cart and shipping follow the shopper's current language and currency instead of keeping data from an earlier one.
  • The per-currency payment gateway settings now list every gateway you enabled, including gateways offered only on some pages, and the note that payment will be made in another currency shows again under the gateway description.
  • WooCommerce Analytics can be filtered by language and shows consistent results.
  • The cart shows product short descriptions in the shopper's language.
  • The order withdrawal request email that WooCommerce sends to the shop now arrives in the admin's language.
  • When you translate a serialized custom field in the WooCommerce Multilingual product editor, numbers keep their type, and product data is read more safely.
  • On shop pages, the language switcher keeps the page's address parameters intact, including ones with characters such as &, # or quotes.
  • WooCommerce Multilingual is built from the same source as WPML and ships in step with it.
  • Security hardening: translated product attribute values are validated before they are saved.

Performance

  • Translated product pages and listings load faster, with gallery images read in one query, also for products shown by WooCommerce blocks.
  • The WooCommerce Orders list with multi-vendor plugins no longer runs thousands of database queries.
  • The WooCommerce Products admin list no longer slows down when String Translation is active.
  • Products without custom prices in a secondary currency no longer re-read their prices on every listing or sitemap view.
  • Translated URL rules are built once instead of on every read, which speeds up every shop page.
  • Looking up categories and tags by slug no longer repeats the same work on every call.
  • Product attribute lookups are refreshed once per request, and skipped for products that have no language yet.
  • WooCommerce Multilingual no longer rebuilds URL rules on every admin request.
  • WP-CLI commands on WooCommerce sites with String Translation use less memory.
  • Slow database queries per product attribute, introduced in WooCommerce Multilingual 5.6, are removed.

Fixes in multicurrency

  • A shopper who switches currency is charged in that currency, even when another request saves the session at the same moment.
  • Product Bundles and other container products holding a variable product can be bought in a secondary currency when only custom-priced products show.
  • On WooCommerce 9.6 and later, each bank-transfer account's currency can be set again in each currency's settings.
  • A coupon without a minimum or maximum amount stays unlimited in every currency, and rounding never makes a free product cost something.
  • The store currency's settings dialog in Multicurrency saves again without waiting for an exchange rate.
  • The Multicurrency settings no longer say the theme lacks a currency switcher widget when every widget area has one, and explain how to add another.
  • In a right-to-left admin, multicurrency exchange rates read in the correct order.

Fixes in Subscriptions

  • Paying an unpaid Subscriptions renewal order works when its variation and attribute were stored in different languages.
  • Subscriptions plans are copied to product translations.
  • With Subscriptions storewide plans, the cart charges the manually set sign-up fee instead of a converted one.
  • On a Subscriptions plan that uses the product price, the product page shows the manually set sign-up fee, not a converted one.
  • A product's manually set Subscriptions plan price takes priority over the storewide one, and fixed-discount plan prices apply.
  • Subscriptions sign-up fees convert to the shopper's currency when the legacy subscription types are hidden.
  • A fixed discount on a product's own Subscriptions plan converts to the shopper's currency.
  • Storewide fixed-discount Subscriptions plans subtract the discount in the shopper's currency.
  • The 'Manually set plan prices' button no longer shows on a Subscriptions product set to 'Sell one-time only'.

Fixes in Bookings

  • Bookings person types stay attached to a re-translated product, and saving a product no longer changes an unrelated post.
  • Untranslated bookings are no longer duplicated into other languages.
  • Booking costs in a second currency and the Create Booking page's currency are read correctly on servers that escape form data.
  • Accommodation Bookings use WooCommerce Multilingual's manual prices per currency for the booking cost.
  • Reinstalling Accommodation Bookings no longer resets WooCommerce Multilingual's rates per currency.
  • Accommodation Bookings data updates no longer pick up converted prices when a visitor browses in a secondary currency.
  • Bookings base costs per currency carry over correctly when WooCommerce Multilingual updates.
  • Saving a booking's translated copy in the admin also saves its status.
  • The booking screen of a translated copy shows its notes without a database error.
  • Field locking on a translation's edit screen works on products without Bookings panels.
  • Bookings notification and pending-confirmation email subjects are translated.
  • Bookings resource labels are translated again.

Fixes in other WooCommerce extensions

  • Composite Products in the cart stay purchasable after a language switch.
  • Composite Products component options no longer leak from one language into another.
  • Composite Products settings are copied to translations and locked on the translation's edit screen.
  • A Composite Products setting marked to translate in Custom XML can be edited on the translation.
  • A cart holding the same Product Bundles bundle in two languages keeps the bundled items of both.
  • Switching language with a Product Bundles bundle in the cart keeps the bundle intact.
  • The Product Bundles "bundle-sells" title stays on translated products.
  • Gravity Forms Product Add-Ons totals are converted once, not twice, when Gravity Forms Multilingual is active.
  • Gravity Forms Product Add-Ons option prices in the cart follow the shopper's new currency.
  • "Order again" with Gravity Forms Product Add-Ons converts option prices from the right currency.
  • The Events Calendar tickets that already carry the wrong language are repaired.
  • The Events Calendar tickets attached to an event get the event's language.
  • The Events Calendar venues sync to translated events.
  • The Events Calendar translated events get the translated venue and organizer instead of the original ones.
  • Smart Coupons restrictions by product tag, shipping class or another taxonomy apply in every language.
  • Print Invoices & Packing Lists emails sent manually by the admin keep the order's language and currency.
  • With WooCommerce PayPal Payments, pages no longer log a "get_cart was called incorrectly" notice.
  • Fixed deposit amounts from WooCommerce Deposits are now converted to the shopper's currency.

Fixes in emails

  • Every WooCommerce email can be translated, including several that had no translation option before.
  • Customer emails no longer contain WooCommerce text in the admin's language when WordPress uses the admin's locale.
  • Emails sent from the order screen with High-Performance Order Storage use the customer's language for tax labels and payment instructions.
  • Failed order, Cancelled order and backorder admin emails are in the admin's language, not the shopper's.
  • Emails whose settings were never saved end with WooCommerce's default additional content in the recipient's language.
  • The partial refund email keeps the subject the shop owner saved.
  • Customer emails show the shipping method in the customer's language when the admin works in another language.
  • An order keeps its original lines when an admin in another language resends its emails, runs an order action or changes its status.

Fixes in product translation

  • Updating a product description in one language no longer overwrites another language's translation.
  • A free variation stays free on its translations instead of being saved without a price, so it is purchasable in every language.
  • Terms of non-translatable custom taxonomies stay on product translations when the original product is saved.
  • A variation description removed from the original product is also removed from the translated variation.
  • Attribute translations made in the Classic Translation Editor reach the Advanced Translation Editor job.
  • Saving with an empty target language in the product translation editor no longer overwrites the original product or blanks its language.
  • A page-builder string registered while the product translation editor is open keeps its existing translation.
  • The product translation editor shows a Beaver Builder product's own texts, and the translation reaches the translated product's layout.
  • Saving a product translation job no longer causes a fatal error when a custom field holds serialized data.
  • The product translation editor no longer fails when a variation has a list-type custom field set to translate.
  • Fields locked on a translation's edit screen are saved with the translation.
  • Saving product attributes after changing the admin language in another tab no longer creates duplicate terms or links other languages' terms.
  • Translated attribute terms and categories keep the custom order of their original terms.
  • Drag-and-drop sorting on Products > Sorting reorders the translations too, without a database error.
  • A product that was never translated shows its own reviews when reviews from all languages are shown together.
  • Translated products imported with WP All Import or WPML Export and Import appear in shop filters in their own language.
  • WooCommerce CSV import gives translated products attribute terms in their own language.

Other fixes

  • The cart and the Permalinks settings page no longer crash when WPML String Translation is inactive.
  • Pages opened with ?force_switch=1 no longer cause a fatal error when String Translation is inactive or WPML setup is unfinished.
  • A translated shop base in the address no longer blocks form and checkout submissions in secondary languages.
  • Product category archive addresses work again in secondary languages on sites that had the shop base translated before 5.6.
  • Category and tag links show their new address right after the term is saved, so SEO plugins can create the redirect.
  • My Account links on translated pages keep their endpoint on sites with a persistent object cache.
  • Viewing an order no longer saves its shipping line's translated title back in the default language.
  • After a rollback to an older WooCommerce Multilingual, later updates apply their steps again.
  • Compatibility with WooCommerce 11.2.
  • Category and tag names and descriptions are translated and charged once, not again in every post that uses them.
  • Adding a translatable custom field no longer marks posts without that field as "Needs update".
  • Saving the same translation twice at once creates only one baseline job.
  • A failed write of a translation status record no longer hands back an earlier record's id.
  • WooCommerce Multilingual's scripts and styles refresh after an update instead of loading stale copies.
  • Shops with a missing product type or a product without a translation group no longer log database errors.

Read the release announcement for WPML 5.2 for the full story behind this version.

Update or download

The update is available to all WPML clients with an active subscription — it appears on the Plugins page in your WordPress admin within 24 hours of release. You can also check for it right away under Plugins → Add New Plugin → Commercial. To download and install manually, go to Downloads in your wpml.org account (see the installation instructions) and remember to update all components together without mixing versions.

Need help or want to give feedback? Please use our technical support forum.

See all WPML Multilingual & Multicurrency for WooCommerce versions