Skip to content Skip to sidebar

This thread is resolved. Here is a description of the problem and solution.

Problem:
The client is experiencing issues with custom widgets turning into 'Missing widget' entries after saving a page in SiteOrigin Page Builder, following updates to WPML v4.8.4 and String Translation v3.4.1. Additionally, there is a 404 error on the pagination of a custom post type archive, which temporarily resolves upon re-saving the ACF custom post type but reappears later.

Solution:
We have determined that the issue with the widgets is not directly caused by WPML or String Translation, but rather by how the custom widgets are loaded and registered. Ensure that all custom widgets are registered using the standard

widgets_init

action and confirm that widget IDs and class names exactly match those saved in SiteOrigin. Also, check for PHP 8.3 compatibility as the plugin might use outdated code.

For the 'Missing widget' issue, disabling the 'Automatically detect best options for translating image texts' setting under WPML → Settings → Media Translation might resolve the issue. This is because WPML's media duplication process could be stripping necessary backslashes from the widget's data when saved in a secondary language. If problems persist, it's recommended to use

wp_slash()

when saving data to ensure backslashes are preserved.

If these solutions do not resolve the issues or if new problems arise, we recommend opening a new support ticket. Additionally, it's advisable to check related known issues at https://wpml.org/known-issues/, verify the version of the permanent fix, and confirm that you have installed the latest versions of themes and plugins. For further assistance, please visit our support forum at WPML Support Forum.

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.

Tagged: 

This topic contains 18 replies, has 0 voices.

Last updated by Dražen 5 months, 2 weeks ago.

Assisted by: Dražen.

Author Posts
October 31, 2025 at 9:50 am

Malene

Background of the issue:
I am experiencing an issue with SiteOrigin Page Builder and custom widgets after updating to the latest versions of WPML v4.8.4 and String Translation v3.4.1. After updating, our custom widgets, defined in a separate plugin developed by a third party, are transformed into 'Missing widget' entries after saving a page in the SiteOrigin Page Builder editor. Examples of affected widgets include: MTTSteioriginWidgetsWidgetsMTTCoverMTTCover and MTTSteioriginWidgetsWidgetsMTTTextImageNumbersMTTTextImageNumbers. The widgets appear correctly before saving, but once the page is saved, they are replaced by 'Missing widget'. See image at hidden link. Additionally, we are seeing a 404 error on the pagination of a custom post type archive: hidden link. The custom post type is registered via ACF (Advanced Custom Fields). Interestingly, if we re-save the ACF custom post type, the pagination starts working again, but after some time, the 404 error reappears without any other changes. Link to a page where the issue can be seen: hidden link

Symptoms:
Custom widgets are transformed into 'Missing widget' entries after saving a page in SiteOrigin Page Builder. A 404 error occurs on the pagination of a custom post type archive.

Questions:
Is this a known compatibility issue between WPML 4.8.4 / String Translation 3.4.1 and SiteOrigin Page Builder or custom widgets loaded via plugins?
Could WPML affect pagination or rewrite rules for ACF-based custom post type archives?

October 31, 2025 at 10:20 am #17535432

Dražen
Supporter

Languages: English (English )

Timezone: Europe/Zagreb (GMT+02:00)

Hello,

here is the ticket, please let me know once it is ready and URL of the page where I can see and test issue.

Regards,
Drazen

October 31, 2025 at 10:30 am #17535451

Malene

I have disabled all unnecessary plugins and updated WPML and String Translation to their latest versions.

However, I cannot switch to a default WordPress theme, since the widgets are registered through the custom theme.

The issue can be reproduced here:
hidden link

To reproduce the problem:

- Add the “Odense Havn – Cover widget” to the editor.

- Enter a title.

- Save the post.

After saving, the widget immediately changes to “Missing widget”.

October 31, 2025 at 12:11 pm #17535738

Dražen
Supporter

Languages: English (English )

Timezone: Europe/Zagreb (GMT+02:00)

Hello,

thanks, I have checked further.

As I can tell, the issue isn’t directly caused by WPML or String Translation, but by how the custom Morning Train SiteOrigin widgets are loaded.If you disable debug.log you will see some notification / message like:

[31-Oct-2025 12:08:20 UTC] PHP Notice:  Function WP_Block_Type_Registry::register was called incorrectly. Block type names must contain a namespace prefix. Example: my-plugin/my-custom-block-type Please see Debugging in WordPress for more information. (This message was added in version 5.0.0.) in /var/www/www.odensehavn.dk/test_environments/www/wp-test-002/wp-includes/functions.php on line 6121
[31-Oct-2025 12:08:22 UTC] PHP Deprecated:  Use of "static" in callables is deprecated in /var/www/www.odensehavn.dk/test_environments/www/wp-test-002/wp-content/plugins/mtt-siteorigin-widgets/lib/tools/class.autoloader.php on line 112

Since the same happens even when String Translation is off, it means the problem is in how the widgets are registered — not in WPML itself.

Make sure all custom widgets are registered using the standard widgets_init action and not later.

Widget names – confirm the widget IDs and class names exactly match the ones saved in SiteOrigin.

PHP 8.3 compatibility – the Morning Train plugin uses an old autoloader that may fail on PHP 8.3. It should be updated.

Please have the Morning Train developers check the widget registration and code.

Let us know how it goes and if there is anything else we can do to help.

Regards,
Drazen

November 3, 2025 at 9:09 am #17539896

Malene

Hi Drazen

Thank you for getting back to me. I will look into the issue. And what about my question reguarding the 404 error on pagination?

Additionally, we are seeing a 404 error on the pagination of a custom post type archive: hidden link. The custom post type is registered via ACF (Advanced Custom Fields). Interestingly, if we re-save the ACF custom post type, the pagination starts working again, but after some time, the 404 error reappears without any other changes. Link to a page where the issue can be seen: hidden link

Could WPML affect pagination or rewrite rules for ACF-based custom post type archives?

November 3, 2025 at 9:15 am #17539919

Dražen
Supporter

Languages: English (English )

Timezone: Europe/Zagreb (GMT+02:00)

Hello,

Great — let me know how it goes.

Regarding the second issue, it’s difficult to say for sure. Since it occurs in the default language, I recommend testing on a staging site with WPML disabled to confirm whether it’s related to WPML. Although it’s unlikely because it affects the default language, there’s still a small chance it could be a bug.

If the problem persists, the next step would be to test without any custom code, plugins, or themes — as customizations could be causing the issue.

If it turns out the issue is related to WPML and happens only when WPML is active, please open a new ticket and we’ll be happy to investigate further.

Regards,
Drazen

November 3, 2025 at 11:53 am #17540925

Malene

Hi Drazen,

I’ve tested again and fixed the PHP deprecated warning:

[31-Oct-2025 12:08:22 UTC] PHP Deprecated: Use of "static" in callables is deprecated in /wp-content/plugins/mtt-siteorigin-widgets/lib/tools/class.autoloader.php on line 112

However, this has not solved the issue with the widget being renamed and turning into “Missing Widget”.

I would also like to clarify that I don’t fully agree with the conclusion that the issue occurs even when WPML and String Translation are disabled.

From my testing, the widget only gets renamed when WPML (and String Translation) are active.
If I create a new widget and save the page while WPML and String Translation are both deactivated, the widget class name remains correct — it is not renamed.

I do agree that once a widget has already been renamed and saved as “Missing”, it will remain missing even after deactivating WPML. But the renaming itself only happens while WPML is active.

November 3, 2025 at 12:49 pm #17541112

Dražen
Supporter

Languages: English (English )

Timezone: Europe/Zagreb (GMT+02:00)

Hello,

thank you for getting back to me.

I think I may not have explained it clearly enough — the issue also occurs when the WPML String Translation plugin is disabled, with only the main WPML plugin active. I did not mean otherwise.

I’ve shared your case with our second-tier support team to review and advise further.

I’ll update you as soon as I have any news.

Best regards,
Drazen

November 3, 2025 at 1:29 pm #17541303

Dražen
Supporter

Languages: English (English )

Timezone: Europe/Zagreb (GMT+02:00)

Hello,

I am trying to reproduce the issue on clean test site, but I have trouble installing additional plugin to download your custom plugins, seems there is some error when searching for plugins to install via your website. You might want to check as it is breaking AJAX function, I tried some other way but no luck.

To speed things up can you please go to next test site: hidden link

and install your custom plugin / theme and lets check if same issue happens there as well. Please do not add any additional content or plugins that are not needed for this issue.

Let me know and I will check further.

Regards,
Drazen

November 3, 2025 at 3:08 pm #17542045

Malene

Hi Drazen

I have uploade 4plugins:

- Morning Train - SiteOrigin Fields
- Morning Train - SiteOrigin Widgets
- MTT - Scripts & Tags
- Page Builder af SiteOrigin

and theme
- odense havn

But the theme throws an cretical error because the plugins was not activated before the theme. And i dont think i can activate the plugins with the critical error.

November 4, 2025 at 6:00 am #17543896

Dražen
Supporter

Languages: English (English )

Timezone: Europe/Zagreb (GMT+02:00)

Hello,

I can not also not access the site anymore.

Can you please try once more on new test site?

- hidden link

Regards,
Drazen

November 4, 2025 at 7:55 am #17544171

Malene

I tried but it failed again. Do you have ftp acces, so you can delete the theme? cause i must hav missed to upload a needed plugin

November 4, 2025 at 10:05 am #17544690

Osama Mersal

Hi,

Since Drazen is off today, I will step in here on the forum. I hope this is OK for you. 🙂

Unfortunately, sandboxes don't have FTP. I created a new sandbox for you. (hidden link)

Best regards,
Osama

November 5, 2025 at 1:32 pm #17550485

Malene

Hi.

I’ve tried uploading both the plugins and the theme, but I keep running into an issue: the theme expects certain elements to be activated within the SiteOrigin Widgets Bundle, while these can only be registered and activated once the theme itself is active. Because of that dependency loop, I’m unable to get it running properly on your environment.

However, I’ve set up a staging site with a minimal configuration that should allow you to debug the problem. I can also provide FTP access if needed.
You can use the same login credentials as previously shared, but access it via the following URL:
🔗 hidden link

Please note that the error has shifted from the Danish language layer to the English one — it no longer appears on the Danish version, only on the English site on hidden link.

I’ve created the Demo page on both the Danish and English versions. On the English layer, you can add the widgets without any issue, but as soon as the page is saved, those widgets turn into missing widgets — whereas on the Danish layer, this does not happen.

November 5, 2025 at 1:39 pm #17550502

Dražen
Supporter

Languages: English (English )

Timezone: Europe/Zagreb (GMT+02:00)

Hello,

thanks, I appreciate the effort.

Let me share this with our 2nd tier and I will update soon.

Regards,
Drazen