A hotfix for 3.13.0. If you are using dynamic data, or you edit Elementor documents on a site with content search running, please update.
A dynamic value on a standard Elementor widget killed the front end
Putting a dynamic value on a normal widget, a Heading for example, produced "There has been a critical error on this website" for visitors. The dynamic picker offered every source and the editor looked correct, so the problem only appeared once someone loaded the page.
Elementor stores a dynamic source by class name and rebuilds it when the page renders. 3.13.0 registered all seventeen sources as one shared class that was told which source it was when it was created, and that instruction was gone by the time Elementor rebuilt it, so rendering failed outright.
Each source is now its own class, which is how Elementor's own dynamic sources are built, so a rebuilt source always knows what it is.
Nothing stored was damaged. The page data was always valid; only the render path failed. Affected pages come back as soon as you update, with nothing to redo.
The block editor was never affected. Its bindings use a different mechanism and worked throughout.
Saving an Elementor document could hang the site and fill the error log
Reported in #119 by @HopeItBuilds, fixed in #120 by @HafizMMoaz.
Opening or saving a document the builder had not yet converted, such as an Elementor Pro Floating Buttons library item, sent the content-search indexer into a loop. Reading the document made Elementor convert and save it, that save fired the indexer again, and round it went until PHP ran out of memory. Two requests produced a 22 MB error log.
The indexer now refuses to re-enter itself, and releases that guard even if indexing fails, so a single error cannot quietly switch indexing off for the rest of the request.
Thanks to both of them: an exceptionally clear report and a clean fix.
Free download: emcp-tools-3.13.1.zip below, or update from your WordPress dashboard.
Everything new in 3.13.0 is unchanged. See the 3.13.0 notes for the nine Themer widgets, dynamic data on free Elementor, and the rebuilt SQL guard.