Skip to content Skip to sidebar

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.

Sun Mon Tue Wed Thu Fri Sat
10:00 – 14:00 10:00 – 14:00 10:00 – 14:00 10:00 – 14:00 10:00 – 14:00 - -
16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 - -

Supporter timezone: Asia/Jerusalem (GMT+02:00)

Tagged: ,

This topic contains 6 replies, has 0 voices.

Last updated by Itamar 3 days, 2 hours ago.

Assisted by: Itamar.

Author Posts
November 3, 2025 at 9:51 pm #17543490

yannA-5

Background of the issue:
I am trying to translate a test page built with Elementor ('WPML Service') created in French: hidden link. I added an Elementor Image Box with an internal link pointing to a product ('Service de maintenance – Contrôle technique des défibrillateurs DEA').

Symptoms:
1. The Image Box title remains in French in all languages. 2. The internal link keeps the French slug /produit/ instead of the translated ones (/product/, /produkt/, /prodotto/, /producto/). 3. The slug page name also remains in French ('WPML Service') instead of its translation in each language.

Questions:
Why is the Image Box title not translating automatically in all languages?
Why is the internal product link slug not translating correctly?
Why is the slug page name not translating in each language?

November 4, 2025 at 9:16 am #17544414

Itamar
WPML Supporter since 02/2016

Languages: English (English )

Timezone: Asia/Jerusalem (GMT+02:00)

Hi,

I'll continue to help you with this issue.

If you need further help with this, please share the access details to your site with me. I'm enabling a private message for the following reply.

Privacy and Security Policy
We have strict policies regarding privacy and access to your information. Please see:
https://wpml.org/purchase/support-policy/privacy-and-security-when-providing-debug-information-for-support/
**IMPORTANT**
- - Please back up the site files and database before providing us access. --
-- If you have a staging site where the problem can be reproduced, it is better to share access to the staging site.--

Regards,
Itamar.

November 17, 2025 at 10:32 am #17583313

Itamar
WPML Supporter since 02/2016

Languages: English (English )

Timezone: Asia/Jerusalem (GMT+02:00)

Hi, and thanks for the access details.

I've investigated this issue on your site, and this is what I can see.

1. The Image Box title remains in French in all languages.

I can see this problem and replicate it on my test site. I'll esclate it to our second-tier supporters.

2. The internal link keeps the French slug /produit/ instead of the translated ones (/product/, /produkt/, /prodotto/, /producto/).

I can see a problem on your site, but not on my test site. I need to investigate further why it is occurring on your site.

3. The slug page name also remains in French ('WPML Service') instead of its translation in each language.

This is because in WPML -> Settings -> Page URL, you have selected the option 'Translate (this will include the slug in the translation and not create it automatically from the title)'. Please see the attached screenshot trans-url.jpg. In this case, the slug will be available for translation when you edit the translation with WPML's Advanced Translation Editor. And I can see that it is working as expected. I edited the Italian version of the page and saw the option to translate the page's slug. Please see the attached screenshot page-slug.jpg. I translated it into: servizio-wpml, and now you can see it works in Italain: hidden link. You should proceed with the same for the other languages. Or, for future page translations, consider changing the option to 'Auto-generate from title (default)'

I'll keep you updated.

Regards,
Itamar.

trans-url.jpg
page-slug.jpg
November 19, 2025 at 10:24 am #17591116

Itamar
WPML Supporter since 02/2016

Languages: English (English )

Timezone: Asia/Jerusalem (GMT+02:00)

Hi again.

I could replicate the problem with the product's title on a fresh test site. Indeed, when using the Image Box element to display a product dynamically, the translated page will display the title of the original product. You can see my translated product and page on the test site here.

Product: hidden link
Page: hidden link

I've escalated this issue to our compatibility team, and they will work to find a fix. I'll update you here on any news regarding this issue.

Regarding problem number 2: The internal link keeps the French slug /produit/ instead of the translated ones (/product/, /produkt/, /prodotto/, /producto/).

I was not able to replicate it on my test site, nor do I currently see it on your site. If I check the Italian page (hidden link), for example, the link correctly points to the Italian product (hidden link) and the slug is /prodotto/. Please see the attached screenshot.

As for problem number 3, please see my previous reply. It is an issue of settings.

Regards,
Itamar.

2025-11-19_12-10-34.jpg
November 22, 2025 at 1:16 pm #17601121
yannA-5

Hi Itamar,
Thanks for your detailed investigation.

1. Image Box title issue
OK, I will wait for feedback from the compatibility team.

2. Internal link slug issue
The problem is still present.
If I modify anything on the page, save, and then update the translation with ATE, the issue comes back.
I added additional Boîte d’image widgets and also tested with the Essential Addons – Wrapper Link plugin, and the problem persists in all cases.
So this behaviour is reproducible and not limited to a single widget.

3. Page slug translation
I have changed WPML → Settings → Page URL to “Auto-generate from title (default)”.
That part is OK.

Please note that the Administrator access link I provided is still valid, so you can continue checking directly on the site whenever needed.
Thank you,
Yann

New threads created by Itamar and linked to this one are listed below:

https://wpml.org/forums/topic/split-elementor-products-internal-link-slug-issue/

WMPL-Error-Product-SLUG.png
November 23, 2025 at 10:32 am #17601704

Itamar
WPML Supporter since 02/2016

Languages: English (English )

Timezone: Asia/Jerusalem (GMT+02:00)

Hi, Yann.

This Image Box title issue (1) has been escalated to our developers. We will keep you updated on any news regarding this issue.

As for the Internal link slug issue (2), it is a separate issue, and I needed to split this ticket to handle it. Please see the new ticket here.

https://wpml.org/forums/topic/split-elementor-products-internal-link-slug-issue/

Regards,
Itamar.

November 26, 2025 at 6:31 pm #17613048

Itamar
WPML Supporter since 02/2016

Languages: English (English )

Timezone: Asia/Jerusalem (GMT+02:00)

Hi,

Our compatibility team has provided a workaround for the Image Box issue.

1. Backup your site in case somethinggoes wrong.

2. Edit the functions.php file of your theme with a code editor.

3. Add this function:

 // Add converters for Elementor dynamic fields that contain [elementor-tag ...]
add_filter( 'wpml_pb_elementor_widget_dynamic_id_converters', function( $configuration ) {

	$make = function( $dynKey, $tagName, $idKey ) {
		return [
			// shouldConvert: widget has a string at settings.__dynamic__.<key>
			function( $item ) use ( $dynKey ) {
				return isset( $item['settings']['__dynamic__'][ $dynKey ] )
					&& is_string( $item['settings']['__dynamic__'][ $dynKey ] )
					&& strpos( $item['settings']['__dynamic__'][ $dynKey ], '[elementor-tag' ) !== false;
			},
			// keyLens: lens to settings.__dynamic__.<key>
			\WPML\FP\Obj::lensPath( [ 'settings', '__dynamic__', $dynKey ] ),
			// tagName + idKey: passed to convertTag()
			$tagName,
			$idKey,
		];
	};

	// Image Box (and others reusing these keys)
	$configuration[] = $make( 'title_text',       'woocommerce-product-title-tag', 'product_id' );
	$configuration[] = $make( 'image',            'woocommerce-product-image-tag', 'product_id' );
	$configuration[] = $make( 'description_text', 'woocommerce-product-price-tag', 'product_id' );
	$configuration[] = $make( 'link',             'internal-url',                  'post_id' );

	// Text Editor, etc. (dynamic content often lives under "editor")
	$configuration[] = $make( 'editor',           'woocommerce-product-title-tag', 'product_id' );

	return $configuration;
} );

4. Save the file.

For existing translations, you might need to update them for the fix to take effect.

We will let you know when the fix included in future versions of WPML.

Regards,
Itamar.