Common Compatibility Fixes for Elementor 3.26

Elementor 3.26 was a big update and dropped support for outdated and deprecated code. This resulted in several compatibility issues relating to 3rd party addons made for Elementor. This is one of those rare updates, in which you need to be sure all of your other Elementor addons are fully up to date before updating Elementor itself. You can read the full details of the new version here: https://developers.elementor.com/elementor-3-26-developers-update/.

I spent much of last week fixing up a few customer websites that were not quite ready for Elementor 3.26. If something isn’t compatible it typically breaks the entire website with a PHP fatal error. The required compatibility fixes are well documented here: https://developers.elementor.com/docs/deprecations/complex-example/. I’ll highlight a few situations and how I was able to patch everything up for the latest version of Elementor. Most of these fixes were fairly straightforward and only required a few lines of code changes.

Patching Geo Controller plugin

In the server logs, I found this PHP fatal error.

2024/12/20 15:27:40 [error] 49368#49368: *172573 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Class "Elementor\Core\Schemes\Typography" not found in /www/public/wp-content/plugins/cf-geoplugin/inc/plugins/elementor/widgets/cfgp-elementor-eu-widget.php:130

This seems to be a fairly active plugin, however, patching only involved making changes to an individual file. I outlined the replacements required as shown here: https://wordpress.org/support/topic/fix-for-latest-version-of-elementor/. I’d expect these changes to be included in a future update to the plugin.

Patching NavMenu Addon For Elementor plugin

In the server logs, I found these PHP fatal errors.

2024/12/19 23:26:07 [error] 121509#121509: *70147 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Class "Elementor\Core\Schemes\Color" not found in /www/public/wp-content/plugins/navmenu-addon-for-elementor/modules/menus/widgets/default-navmenu.php:199
2024/12/20 00:00:33 [error] 121509#121509: *70404 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Class "Elementor\Core\Schemes\Typography" not found in /www/public/wp-content/plugins/navmenu-addon-for-elementor/modules/menus/widgets/default-navmenu.php:587

This plugin hasn’t received an update from the plugin author in over 6 years. In fact, it was officially closed 4 years ago. Giving that info I decide to patch the plugin directly. There were 17 blocks of code that needed to be replaced within a single file as shown below. Again, fairly straightforward to fix. With that, another customer website was restored.

Patching outdated plugins for Elementor

Downloading code from WordPress.org for a closed plugin can be a little tricky. You can browse around WordPress Trac until you find the version you wish to use: https://plugins.trac.wordpress.org/browser/navmenu-addon-for-elementor/tags/1.1.6. Then use svn to manually pull down that code.

svn checkout https://plugins.svn.wordpress.org/navmenu-addon-for-elementor/tags/1.1.6/ ./navmenu-addon-for-elementor

If you plan on forking a plugin I’d recommend removing the .svn folder included in the checkout before creating a new git repo git init.

Patching Ultimate Carousel For Elementor plugin

In the server logs, I found this PHP fatal error.

2024/12/20 00:06:04 [error] 69130#69130: *242480 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Class "Elementor\Core\Schemes\Typography" not found in /www/public/wp-content/plugins/ultimate-carousel-for-elementor/widgets/advanced-carousel.php:629

This plugin hasn’t received an update from the plugin author in over 3 years and has been closed for security reasons. A known security vulnerability can mean anything. For this one, I looked it up using WordFence’s Vulnerability Database https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/ultimate-carousel-for-elementor.

This vulnerability requires a contributed level user or higher to exploit, which for this customer website isn’t likely to ever be exploited. Security is important but I’m also practical – if the likelihood of a known vulnerability being exploited is 0% then I’m fine to ignore the vulnerability. This plugin required one line of code patching to restore.

Patching custom coded themes

A good strategy for patching websites with PHP fatals is to tail the server error logs tail -f ~/logs/error.log. Each time an outdated line of code is patched either the website will be restored or you’ll see a new error appear. If you happen to find a common pattern of bad code then you can use grep to hunt for similar references. With grep, searching for an arbitrary text like Schemes\Color is possible if the backslash is properly escaped like this Schemes\\\Color. Here is a sample from response hunting for outdated code for one of my customer’s websites.

grep -rn "Schemes\\\Color" wp-content/themes/
wp-content/themes/hello-theme-child-master/widgets/faq.php:91:                'type' => \Elementor\Core\Schemes\Color::get_type(),
wp-content/themes/hello-theme-child-master/widgets/faq.php:92:                'value' => \Elementor\Core\Schemes\Color::COLOR_1,
wp-content/themes/hello-theme-child-master/widgets/faq.php:107:                'type' => \Elementor\Core\Schemes\Color::get_type(),
wp-content/themes/hello-theme-child-master/widgets/faq.php:108:                'value' => \Elementor\Core\Schemes\Color::COLOR_1,
wp-content/themes/hello-theme-child-master/widgets/faq.php:123:                'type' => \Elementor\Core\Schemes\Color::get_type(),
wp-content/themes/hello-theme-child-master/widgets/faq.php:124:                'value' => \Elementor\Core\Schemes\Color::COLOR_1,
wp-content/themes/hello-theme-child-master/widgets/faq.php:139:                'type' => \Elementor\Core\Schemes\Color::get_type(),
wp-content/themes/hello-theme-child-master/widgets/faq.php:140:                'value' => \Elementor\Core\Schemes\Color::COLOR_1,

With all of those lines patched, this particular customer website was restored.

Thoughts on Elementor’s compatibility fixes.

Elementor is a very popular plugin. I support their team in continuing to improve their product and pull out all old code. The fact that this caused issues with some customer’s websites is a testimony to Elementor’s success. It means they’re popular enough to have stood the test of time. They’ve created their own ecosystem within the larger WordPress ecosystem. As with anything, the age of Elementor’s ecosystem is starting to show. Many theme and plugin authors who were at one time making products for Elementor have moved on.

There is now a graveyard of Elementor-related themes and plugins that might no longer work in the long term. That is both sad and the reality of anything on the open web. Hopefully, with this guide, you can extend some more life out of your outdated Elementor-related themes and plugins. If ever you wish to try out a hassle-free web hosting experience then feel free to reach out to Anchor Hosting.