[BETA] Fork of Elementor with ClassicPress support

Split off from: Good bye Elementor? - #31

I know Elementor compatibility (and page builder compatibility in general) has been an issue for a lot of people so I decided to go ahead and start a fork of Elementor today, in a way that will allow us to continue maintaining it (with the latest security fix now, and potentially with other changes/fixes in the future). Here is the repository: GitHub - ClassicPress-research/classic-elements: ClassicPress EXPERIMENTAL plugin: Elementor free version, intended for compatibility with ClassicPress.

This was the easy part. I started from the source code at GitHub - elementor/elementor: The most advanced frontend drag & drop page builder. Create high-end, pixel perfect websites at record speeds. Any theme, any page, any design. and applied the security fix commit on top of the v2.7.6 code.

Building from source like this is the best way to do a maintainable fork, but the hard part was getting the plugin to build correctly.

Expand for technical details

It looks like the version of Elementor that was released as https://downloads.wordpress.org/plugin/elementor.2.7.6.zip had some extra things done to it that arenā€™t in this GitHub repository. I canā€™t find out where the following files in this plugin were coming from:

  • assets/css/editor-dark-mode.css, assets/css/editor-dark-mode.min.css
  • assets/js/editor-document.js, assets/js/editor-document.min.js

There are also some differences in the built JS and CSS files, it looks like this is because Elementor doesnā€™t lock their webpack and other build dependencies to specific versions. From a quick look I donā€™t see anything that looks like it will cause problems.

So now we have a version of Elementor 2.7.6 that includes the security fix from Elementor 2.8.5.

I did a VERY basic test (created, published, then edited a very simple page) and it seems to work OK. This is very much a beta release (needs more testing before I can recommend it to be used on production sites) but you can try it here:

https://github.com/nylen/classic-elementor/releases/download/v99.2-upstream2.7.6/classic-elementor-99.2-upstream2.7.6.zip

If youā€™re installing this on top of an existing Elementor (free version) you can use this plugin to allow upgrading from a zip file: Update Theme and Plugins from Zip File ā€“ WordPress plugin | WordPress.org

12 Likes

Thereā€™s also this patch which was marked as a hotfix in v2.8.5 - Hotfix/usage check empty by iNewLegend Ā· Pull Request #10354 Ā· elementor/elementor Ā· GitHub

From this PR: Hotfix/usage check empty by iNewLegend Ā· Pull Request #10354 Ā· elementor/elementor Ā· GitHub

2 Likes

That looks like a bugfix rather than a security issue, though I donā€™t know enough about Elementor to see exactly what itā€™s doing.

This is just a starting point, right now my goal is to provide an option for people to run Elementor without security issues, since they dropped support for WP 4.9.x in version 2.8.0.

5 Likes

Iā€™m now going to revisit all of the stalled Elementor developments so that they can have a new life!

4 Likes

Thank you James - that may have taken me all week! :smiley:

I glanced at an Elementor v2.7.5 install and that did not have the files you refer to, either. So far your fork is operating fine without them.

I have briefly tested the ā€˜Premium Addons for Elementor pluginā€™ with your fork, which installed and appears to function fine, as expected.

Next step, Iā€™ll test some more complex theme pages on a staging site.

2 Likes

This is a mammoth task, well done James!

3 Likes

The real work is in keeping up with this afterwards. For example Elementor has made almost 2,400 commits since version 2.7.6 was released.

Needless to say Iā€™ll need some help from the community in maintaining this.

7 Likes

Probably should update 159 to point to this thread: Plugins Confirmed Working on ClassicPress v1

3 Likes

Those were my first thoughts when I saw the announcement.

2 Likes

Could be moved to the ClassicPress Research repo?

2 Likes

This was my aim also.

Hopefully a stable platform to run on.

I donā€™t need the new features, so would be happy with a fairly static fork that includes security patches.

Bug fixes would be a nice to have.

Someone else may want to build upon that (in another fork?) and include (overlay) some of the newer features, albeit they may need re-writing.

I canā€™t promise anything, but will try to look at tidying up a few things.

3 Likes

Posted there and messaged here:

2 Likes

A post was split to a new topic: Elementor Raises $15 Million

Moved: GitHub - ClassicPress-research/classic-elements: ClassicPress EXPERIMENTAL plugin: Elementor free version, intended for compatibility with ClassicPress.

The same as before, anyone is welcome to submit issues and PRs, but this makes it a bit clearer that this plugin is meant for the ClassicPress community to use and maintain.

4 Likes

It might be best to remove ā€œElementorā€ from the name, and eventually from the code. Thatā€™s the only legal issue with forking plugins. Otherwise youā€™ll be in this situation:

With $15mil they have more money to spend with lawyers now :unamused:

4 Likes

The implications here are not limited to just the name. Iā€™d assume Elementor would take issues to the forked version having to access their server to retrieve the pre-designed pages and sections (templates)!

3 Likes

Thatā€™s true too. I wonder how licensing applies in situation like this.

Those templates might eventually stop working if they begin using new features forked plugin doesnā€™t have.

2 Likes

Iā€™m going to make an assumption that the free templates form an integral part of the free version and therefor are released under the terms of the GPL. The pro versions however are not since the pro addon is not GPL.

Iā€™m looking at doing a bulk import of the free versions and maintaining them on either my server or in a repo on GitHub. If Iā€™m going to host them on my server then Iā€™ll need to figure out how to setup the REST API endpoints to serve them from - fun times ahead :slight_smile:

3 Likes

Something like the endpoints @anon71687268 created for his Update Manager?

Yes something similar but would like to hook it to the builderā€™s own CPT instead of creating a new one.

Trying to figure out how Elementor have set their up to return the info.json and then serve the templates remotely.

GitHub might work if thereā€™s an Action to automate the info.json - I have a rough proof of concept addon and to figure out the info automation part. The good thing with the self hosted CP already provides the API.