Starting from €5.83/mo
Compatibility
- WordPress 7.0 — Fixed the Classic Translation Editor field layout, the post-language-change modal, and the language switcher block so they render correctly on WordPress 7.0.
- PHP 8.4 and 8.5 — Cleaned up deprecation notices and silent warnings so sites on the latest PHP versions stay clean in their error logs.
- Elementor — Strings sent to the Advanced Translation Editor no longer include inactive fields.
Moving and re-registering a site
- When you move a site to a new domain, WPML now applies the Copy with migration code option automatically, dismisses stale migration notices the moment the URL changes, and shows the migration banner as soon as the alias domain is reset.
- Restored the explanation shown when the alias domain is automatically reset, and re-enabled the manual alias-domain entry on the Troubleshooting page so site registration is reachable again on sites upgrading from 4.9.4.
- Stale cloned site flags are now cleared on upgrade so a partially-completed migration wizard no longer blocks subsequent runs.
- Redesigned the refund / unregister / replace-site-key notice as a clearer three-card layout, making it easier to remove WPML from a site you no longer use.
Advanced Translation Editor
- Slug changes made in the Advanced Translation Editor are now correctly saved back to the translated post.
- The lock-contention response is now a proper HTTP 423 status instead of HTTP 500, so retries from the translation service work correctly.
- Translation jobs are now sent in priority order — items at the top of your queue are translated first.
- Translations downloaded from the Advanced Translation Editor now appear in the language switcher immediately, without needing a cache flush.
- Translation sync error screens now include support instructions and direct links to the relevant help articles.
- The Translation Management job log was rebuilt on a new storage backend with much richer logging, making it easier to diagnose translation issues.
Translation Management dashboard
- The post edit screen is significantly faster on sites with orphan posts created in secondary languages — the per-render orphan-translations check has been replaced with a much lighter query, so editing posts in Gutenberg no longer pauses on large sites.
- Removed unused legacy tracking code and a duplicate JavaScript global from the front of the admin.
URLs, slugs, language switcher
- Plain-URL to permalink conversion now preserves the port number.
- The translated URL is generated the first time when translating with the native WordPress editor — no more translate twice to see the slug.
- Fixed translation of links at the bottom of toolset archive pages.
- An empty translation ID no longer accidentally creates a stray post during in-progress Classic Editor translations.
- Private posts no longer get redirected to a media post when they share a slug.
- Private posts now appear on the secondary-language blog page.
- Future-status posts now show the language switcher again.
- Language switcher block: fixed flag size in the preview area, and added explicit widthand height attributes on flag images for better Core Web Vitals.
Menus, caches, and miscellaneous
- Sites running an object cache no longer lose translation menu items after Sync Menus— the term cache is now invalidated correctly.
- ACF Gallery Block: duplicating a page now duplicates all images, not just the first one.
- Cleared a false-positive SQL-injection warning from third-party security scanners.
WordPress 7.0 Compatibility
- The block editor now stays in modern iframe mode on WPML-enabled sites.WordPress 7.0 makes the fully iframe-based editor the new standard. On sites running an older version of WPML, the editor would silently revert to legacy mode whenever WPML was active. The Language Switcher and Navigation Language Switcher blocks have been updated to fully support Block API version 3, keeping the editor in modern mode as expected.
- Navigation Language Switcher “open on click” now works correctly on WordPress 7.0. WordPress 7.0 changed how the Navigation block stores this setting. WPML now reads the updated value correctly, so submenus respect the behaviour you configured.
- New WordPress 7.0 block content is now translatable. Three elements introduced or restructured in WordPress 7.0 were not appearing in the WPML translation editor. All three are now fully translatable: Icon block accessibility labels (aria-label), Navigation overlay close button text, and Tab block labels.
- Fixed block editor warnings and styling issues on WordPress 7.0. WPML’s internal code for registering block assets has been updated to use current WordPress APIs. Block descriptions are now plain strings as WordPress 7.0 requires, and CSS loads correctly inside the iframe editor. All changes are backward compatible to WordPress 6.3.
- Fixed PHP deprecation notices in server logs. A PHP function deprecated in WordPress 7.0 has been replaced with the modern equivalent throughout WPML’s codebase.
Other Fixes
- Fixed a blank white screen on the WPML Settings and Translation Dashboard pages in wp-admin.
- Fixed slow loading on the Menu Sync page.
https://wpml.org/version/wpml-4-9-3/
Fixed a security issue in WPML’s Translation Feedback feature. Heads-up: we’re retiring this feature in the next major WPML release because the usage has been very low.
Fixed an issue where WooCommerce customers could experience a slow checkout and see a false payment error, even though their order had been successfully placed and their payment had gone through.
Fixed an issue where users could see a false error when copying their site during the migration process, even though the operation had completed successfully in the background.
Fixed an issue with missing custom fields in translations.
Fixed an issue where Full Site Editing templates were not applied to translated pages.
Fixes
Compatibility
- Fixed an issue where automatic translation of content that uses Base64-encoded characters was blocked.
- Fixed a fatal error that occurred while viewing the post if a third-party plugin was using the user_has_cap hook.
- Fixed an issue with a wrong redirect when post and media had the same slug.
- Moved the “I just logged in secondary domain” option from the site migration banner to the WPML Troubleshooting section.
- Added the unresolved jobs notification the WPML’s section in the top admin bar.
- Added a simpler, one-click button for copying the WPML Debug log.
- Added opcache details to WPML’s debug log.
- Elementor: Added support for translating Nav Menu, Mega Menu, and Theme Builder templates widgets.
- Elementor: Added support for translating products in the loop grid.
- Elementor: Added support for translating links in atomic widgets.
- Divi 5: Added a rule to skip the Gutenberg cleanup process during media processing.
- Divi 5: Added a rule to skip the Gutenberg cleanup during Divi 5 migration.
- Divi 5: Added support for translating Divi Canvases.
[WordPress 6.9 Compatibility] Fixed various issues caused by the implementation of the new cache key (get_page_by_path).
[WordPress 6.9 Compatibility] Fixed an issue with the broken “Overwrite existing content” button in the Block Editor.
Fixed an issue where the Site Logo displayed as a default placeholder on sites using Elementor Pro.
Fixed performance issues caused by a database query running on all frontend calls while pages in secondary languages are opened in multiple tabs.
Fixes
Performance
- Improved how WPML communicates with sites that use strict Content Security Policy.
- Fixed an issue where WPML Setup Wizard would get stuck on the AI Translation step due to missing “Display name” and “Email” fields for administrator.
- Fixed an issue where WPML Setup Wizard would get stuck on the AI Translation step after site migration.
- Fixed an issue where a site could remain inactive and credits couldn’t be assigned to it from the WPML Account after re-registering the site key.
- Fixed an issue with a redundant API request being sent from the site when there is no change in the performance monitoring settings (PostHog)
- Updated the bundled Axios JS library dependency to version 1.13.1
- Fixed performance issues caused by a database query running on all frontend calls while secondary language pages are opened in multiple tabs.
- Improved the mechanism for sending translation jobs so it faster handles multiple jobs in many languages.
- Optimized the performance of Author archive pages by adding a fast pre-check for the author’s post count.
Fixed an issue where WPML setup could be blocked on servers configured with HTTP/2.
Improved performance for media processing in existing posts.
Minor user interface improvements for the Menu Sync page.
Fixed a fatal error for some sites where English is not a primary language and the translation_priority taxonomy is not explicitly translated.
Fixed double-compression issues that appeared after running the “Optimize translation tables” routine in WPML → Support → Troubleshooting.
Enhanced the Translation Dashboard user interface related to Word Count.
Fixed an issue with the missing language name for specific settings in the Language Switcher tooltip.
Fixed an issue with the ON/OFF switch for Translate Everything Automatically in the bottom of the Translation Dashboard.
Fixed the missing plugin translations in the WPML Setup.
Isolated the Auryn version to avoid collision with other plugin dependencies.
Fixed an error when applying translations when referenced media is not found.
Display the Advanced Translation Editor Job ID for translation jobs to improve support and debugging on stuck jobs.
Prevent stuck jobs when translation entry was present in the database due to data corruption.
Improve minimum requirement detection for REST API.
Fixed a glitch when applying override options for in-progress jobs that prevented proper credit cost estimation and job translation from Translation Dashboard.
Fixed a fatal error that happened for the ICanLocalize clients when running the migration.
[Elementor] Optimized the media scanning in existing Elementor posts to avoid collecting unnecessary data, reducing overhead.