If you have customized your Divi site beyond simple CSS tweaks, not to mention if you´re a developer who has customized many client sites, you should be aware of possible troubles when updating Divi to the brand new 2.4 version.
Divi 2.4 is a great theme… but it´s almost a new one
If you´ve followed the Divi 2.4 prerelease posts at the ET blog and today´s official release post, you already know that Divi has become an even more powerful and flexible theme with the 2.4 update. And, if you´ve already had the chance to download it and give the new version a little try, you´ll most surely be delighted with all the new options, settings and possibilities it brings.
But in order to include all those new capabilities, ET had to change a lot of things in Divi. Probably the most important changes are related to the new Divi Builder, which has been completely revamped. The new Builder code is based on OOP (Object Oriented Programming), each of the Divi modules being constructed by a new OOP class instead of the old procedural PHP functions. Also, ET changed the name of some PHP functions that are used throughout the theme. So far so good. But the problem is this: backwards compatibility with the removed or renamed functions hasn´t been provided.
The bottomline is that, if you´ve modified original Divi functions in a client site by means of a child theme, updating the parent theme to Divi 2.4 without modifying your child code can cause a lot of trouble. For one thing, if you´ve modified any of the Divi modules to add or change some functionality for your client, your modified code will not be called by the new Divi Builder, so your custom functionality will be lost. Also, if you´ve modified any of the original Divi functions that have been renamed, you´ll get a PHP error on the site frontend and the page won´t be correctly loaded.
I´ve asked ET to provide some backwards compatibility for customization code based on the previous versions of Divi because otherwise a lot of sites that have already been handed by developers to their clients will stop working alright as soon as the user updates Divi to the 2.4 version. I don´t know whether those compatibility features will finally be added to Divi, but for the time being I considered it my duty to warn you about the possible problems and also to provide the appropriate means in order to avoid those problems for Divi Children and Engined users.
This is not something strictly related to Divi Children child themes or Engined, since it applies to many Divi sites that have been customized beyond simple CSS tweaks, no matter whether their custom functionalities were developed from scratch or whether they´re based on any of my free Divi products.
But please don´t panic. It´s not my intention to make you worry too much and there is no need for it. Let´s take a closer look at the possible different situations:
- If you´ve only customized your Divi site via CSS modifications without changing functionalities, you don´t need to worry at all and you´ll most probably find that the 2.4 update works seamlessly for your site (you may have to take a look at everything in order to make sure though, because you could find some minor flaws like a module changing its title from h1 to h2).
- If you´ve modified any of the original Divi functionalities by yourself, the best thing you could do right now is wait before you update Divi. In case ET finally provides some backward compatibility code, that might be the end of your problems. In case they don´t, you´ll need to choose whether to update your custom code to make it work with Divi 2.4 or to keep the older version of Divi without updating. At any rate, if we´re talking about closed client projects, you won´t need any of the new Divi 2.4 features for it, so there is no hurry and you can take your time before updating the parent theme.
- If you´ve used Divi Children to create and customize your child theme or if you´ve used Engined as your child theme, whether you know it or not you´re most probably using custom functionalities that won´t work if you update Divi right now to the new 2.4 version. Here´s what you need to do:
- Please wait and don´t update Divi yet.
- If you´re using a child theme created by Divi Children, I´ll provide a way to avoid compatibility problems very, very soon. More on this in a moment.
- If you´re using Engined, I´ll also release a new compatible version, although it´ll take longer than the Divi Children fixes.
- If you´re going to use Divi 2.4 for a brand new site, you´re simply going to love it and of course there´s nothing you´ll need to worry about. Actually, if this is your case, you shouldn´t be even reading this post. So just go ahead and enjoy Divi 2.4!
The Divi Children case
Many things have changed in Divi that will affect sites using child themes created by Divi Children (or at least those where the Divi Children customizing features have been used), such as:
- Divi 2.4 code completely redefined using OOP for all the Divi modules.
- Divi 2.4 Advance Settings and customizer settings are sent to output overriding your child theme css output.
- Some Divi functions have been renamed, even if their funtionalities are still the same.
- Even some minor html changes will prevent some CSS tweaks from working as expected.
In some cases the fixes needed to update Divi Children child themes to make them work alright with Divi 2.4 are not light and straightforward modifications. But fortunately I was privileged to be one of the Divi 2.4 Beta Testers, and therefore I had the chance to see what was changing several days before the Divi 2.4 official release.
So, I´ve been working on a Divi Children update that will not only make newly created child themes work fine with Divi 2.4, but it will also let you update your previously created child themes to make them compatible with the new version of Divi.
I´ll release the new Divi Children update very soon, hopefully in just some hours from now. It is almost ready but I wanted to wait until the official Divi 2.4 release and then have the opportunity to test everything with the finally released version of the parent theme. So please have a little tiny bit of patience and wait until I release the new Divi Children update before updating Divi in any site where you´re using a child theme created by Divi Children.
Edit 2015-06-18: The new version of Divi Children has been released.
The Engined case
Engined is a complex child theme with more than 500 customizer settings, many of which have been adopted by ET for the Divi 2.4 update (or at least some settings equivalent to them have been). If you´ve used Engined, you´ll recognize many settings in the new Divi 2.4 version, like for example the “Hide header on homepage load” Engined setting (“Hide navigation until scroll” in the new Divi version), or the ability to customize the Divi buttons, not to mention the intensive use of Customizer settings.
But so many things have changed in the way Divi now works that it is impossible for me to cope with all the necessary modifications for the Engined child theme at the moment. Right after I release the new Divi Children version I´ve talked about above, I will resume the Engined compatibility re-coding, and I´ll try to release a new version of Engined soon.
But right now my priority is Divi Children. Why? Because thousands of finished, live sites out there are using child themes that were created by Divi Children, and I would like them all working without any problem as they´ve been working until today.
Engined, on the other hand, was released less than a month ago. Even though many people are using Engined now (and loving it, by the way), the number of finished sites is much smaller than in the case of Divi Children.
If you´ve used Engined for any site you´ve already finished and that is live now, please don´t update Divi yet and wait for the update, whether it is my new Engined update or any compatibility update coming from ET. And if you´re using Engined for a site still under development, I need to ask for a little more patience because I know you´d like to have all the new Divi features available for it asap. As you can imagine, I´ve to use a lot of patience myself because I´m having a lot of unexpected work to do these days. 🙁
Edit 2015-09-17: The new version of Engined has been released, while a legacy version of it is still available.
- New Divi Children 3.0.10 update released - April 7, 2022
- New Divi Children 3.0.7 version for WordPress 4.9 - November 15, 2017
- Understanding Divi Children Output Mode - October 11, 2017
A similar thing happened with Headway themes – their second version was so radically new and good, that they did’t provide backwards compatibility to those early adopters who used the first several generations – and it left me annoyed, feeling that they had left us early adopters behind. However the second generation is often way better. With Divi – I think it would be harder a s a company – as developers rushed in the create tools to fix issues that they were working on fixing already. That’s a hard call to make. Luckily, I didn’t customize the Divi site I set up much, just a small change to the words on the mobile navigation menu with DiviBooster – not sure how that will be affected. Good luck with changes!
Top man Luis!
I created a child theme using Child Themify (before I knew about the others :). Do I need to be concerned about problems in this case? Thank you. And thank you for the great post! Sue
It´s not a question about how you created your child theme Sue, but about the extent of customization you added to it. If you just tweaked CSS, you shouldn´t have any problem at all.
Music to my ears…. thank you! Sue
I’ve just been checking how Child Themify works (I’ve been using it for a while), and realised this afternoon that it uses the old, outdated (and not recommended) method of referencing the parent theme’s stylesheet (it uses the import command, instead of the enqueue command).
Check it out – this is pretty important.
Are you talking about Child Themify (as you said) or about Divi Children?
I know Divi Children is still using @import, it hasn´t been updated yet. For the past months I´ve been focussing on Engined, which code will be included in Divi Children later and that already uses the enqueue way.
Thank you Ty!
Thanks for the heads-up Luis, I was wondering the exact same thing about CSS and PHP, I have over 50 sites using Divi, most customised, so think I’ll leave updates for a bit and see what happens:)
I’ve got 6 sites using Child Themes created by the Divi Children plugin (I haven’t used Engined yet) and will hold back on updating the theme until I hear from you about your plugin updates.
Many thanks for the heads up and the excellent explanation 🙂
Don´t worry, Alan. You´ll hear from me very soon, as I said on the post.
Updated to 2.4 and my body text turned white hiding it on a white background. I’ll wait before I update others. If you use pricing you will find the $ is out of whack also. I left the field blank and inserted the $ sign before the price. Like I said I will be waiting to update other sites.
After reading about your plight regarding those vultures who criticized you for (God Forbid) putting up affiliate links, etc. I couldn’t wait for the Divi 2.4 update. I didn’t have an Elegant Themes membership, I wanted to wait for this Divi update. Well, I just went ahead and clicked on your affiliate link and signed up. I saved $20, but more importantly you got credit for the sale (which you more than deserve.) Keep up the great work!
Thanks a lot, Andrew. I really appreciate it. Enjoy Divi 2.4!
I certainly will not update no Divi. It’s a theme, there’s no need to update it when it works perfectly well with Engined. It present no security reason.
The new Divi seems interesting though, for future website. Let’s see how fast it performs and such.
At first, sorry for my bad english!
And now, i am quicker with update divi before i am reading your notes. The site is now white, nothing to see. Is there a Chance to install back the divi 2.3 Theme?
Sure, Hartwig. You can always go back to Divi 2.3.
And Nick Roach commented this on their blog: “You can also download Divi 2.3 from within the members area if you need to temporarily downgrade a site that was not properly tested.”
Thanks, for the quick Commend. Now is my Question, what is th best way to downgrade. Normal intallation of Divi 2.3, or is there a better way.
I guess you´d need to change your theme to other one (any of the default WP themes, for example), then delete Divi 2.4, then install Divi 2.3 and finally activate it.
I have to say ” Thank You”. My Site runs like before. thx for the Tipps.
Just like to let you know, that everything worked fine while upgrading to Divi 2.4 with Engined (I don’t have any major modification doe).
By the way, here in the comments the profile pictures cover some of the text. I use the latest Chrome version.
Just now the comments look great again, I guess it was because of my computer (even doe I refresh a few times before).
Hola Luis, It is Divi Children updated already? I wonder since you said it will be in a few hours but I am not sure when did you said that 🙂
It´s just out, Facu!
One thing I notice as I delve into the tutorials on the Elegant themes site for the new Divi 2.4 update is that they constantly make reference to the fact that with the new library feature which allows you to customize and save individual components (layouts, sections, modules, etc.) that you can do a lot of customization without relying on child-themes.
I’m not exactly “new to WordPress” but I haven’t been that serious. I’ve been hand coding html and css using bootstrap and have a fair pit of practice with jQuery plugins. But I want to go “all in” with WordPress, largely because of this new Divi update.
I think I get that the general idea of a child-theme is to be able to make customization iterations without affecting the core styling.
I have figured out how to utilize child-themes (especially in the case of your plugin, thank you very much.) I guess I was just wondering where you would chime in on this idea of, “less of a need for child-theme utilization?”
I think you´ll understand it if I summarize some events in just a few chronological steps:
Are you missing something? Yes, right in the middle: As I explained on this post, Divi 2.4 changed a lot and it doesn´t provide enough backwards compatibility with many existing child themes that for example have customized Divi functionality. Many developers are complaining about that, so now ET is telling them that their problems came because they used customized child themes, and are encouraging them to not using child themes from now on. I guess they´re just trying to diminish the number of broken sites next time they release a major update like this one. But I think they´re swimming against the tide, customizing Divi only through native settings can be perfect for end users but developers usually need something else. Not usually, but almost always. And they (we) need a child theme for that.
I’ve spent a fair deal of time on the ET support forums lately and more and more they are saying that it’s still a good idea to use a child theme if you need to. It’s because people are asking about things they said in their promo video about the lack of a need for child themes. They have been trying to clarify that lately. The gist of it seems to be this: there is so much you can customize inside of Divi 2.4 now, that may people may not need a child theme; but there are still reasons for other people to use one. Anyways….
For me? Just being able to easily change the copyright text is enough for me! That, and in my limited experience, with all the reading I have done, I’m afraid NOT to use a child theme right now. 🙂
Luis, you are one amazing dude! Thanks for all your clear communications and for your fast action on Divi Children. Given that you got that out so fast I’m curious if you have a revised timeline for updating Engined now? I only have 1 site currently live with it and I don’t need to update it. However I have 2 sites in dev with it and it would be VERY helpful to be able to upgrade to 2.4. I’ll try some tests today, now that I have time. But just wanted see what your thoughts are about the update timing. THANK YOU!
Divi 2.4 is giving me a really hard time trying to make Engined consistent with it. I´m working on it at the moment, spending several hours a day on it (and even more during the weekend) and so far I can´t talk about any ETA that I can promise. I´ll try to have it in about a week. In case I can´t make it by them, I could probably provide an “after Divi 2.4 beta” version with the most important modifications included in it, so those of you who are in a hurry because you´re using it for sites under development can at least start using Divi 2.4 on them.
If when you say “I’ll try some tests today” you mean you´ll try updating to Divi 2.4 on those dev sites running on Engined, I´m afraid you´re going to see a lot of strange behaviours, depending of how much you´d customized them.
Thanks for the response (and I noticed you fixed the avatar overlap issue, nice). I’m in a quandry. I installed a copy of the original live site in the old theme and then installed the newest Divi 2.4.2 on it. But now I’m stuck trying to recreate everything I’d already done on the dev version and doing so w/o the benefit of Engined. But I was having a few issues on the dev site that I’d hoped the update would fix. I hate to post for help with the old version as everyone is so busy looking at the new. They’re likely going to tell me the upgrade will fix my sidebar and mobile issues. I’m not sure if it will. I was going to try adding Engined to this new install to see what happens. From what you’re saying I shouldn’t even try that?!
You sound like a very busy man! I’m wondering if you will be taking out the Engined features that are doubling up with new 2.4 features? I’ll be purchasing Divi soon using your affiliate code and will be keen to try your new Engined also.
I´m working on the Engined update right now, and finding out that I won´t need to remove most of its features. Some of them are indeed repeated in Divi 2.4, but it´ll be sufficient to make the user choose whether to use Engined or Divi for a particular setting. For instance, leaving the Engined default value for a setting will allow to use the Divi setting, while using the Engined setting out of the default will override the equivalent Divi setting. Some Customizer sections of Engined have more customizing options than the native Divi, therefore it makes sense to leave them as they are so the settings are consistently organized, even if some of them are repeated in Divi 2.4 now.
Great to hear of your progress. Having just converted a dev site that was using Engined to a new location and rebuilt in Divi 2.4.2 I must say I agree completely with you. While the new Divi is lovely the lack of many of the options you include in Engined are sorely missed. I eagerly await your update whenever it arrives. THANK YOU!!!!
Thx for the future Engined (postDivi2.4). It will add some more customization possibilities, as it did for the previous version, too.
For instance the Footer Credits which were great – and not introduced in the new Divi 2.4. I just wonder , why?
So, in any case, we have to wait for your update…
(I have 9 sites developed with the help of your Engined Ch. Theme. )Thx! and Thx…!
I still have this site in Engined and haven’t updated Divi yet. Any news on your progress?
They want me to add a full-width footer with a subscription in it and for the life of me I’m not seeing why I can’t get the footer to display. I must’ve disabled it somehow in Engined. I was hoping the new version would be released and I’d resolve it then. I have gone into Customize, selected custom footer, selected only 1 column and put something in Footer 1 (tried it in all of them actually) but nothing displays. What am I missing here?
I still need some more time to fully update Engined. There have been too many changes, and ET even keeps changing things. Last week I found some things I had fixed for Divi 2.4 stopped working alright after the 2.4.3 update. I´m right now working on the Main Sidebar section, where the css has changed dramatically due to the new percentage based Divi sidebar.
Regarding your footer issue, I can´t see why it doesn´t work properly in your case. If you´re still using Engined with Divi 2.3, selecting Customize Layout with Engined in the Main Footer section of the Engined Customizer and using Footer Area #1 in Widgets should work. Do you want me to take a look at your site?
Thanks again for the update. Sorry it’s being so painful. A good night’s sleep and this morning I was able to easily see why the footer wouldn’t display. It was this little bit of CSS!
So no need for you to distract yourself with my little issues. I eagerly await the release of Engined whenever it’s ready. Thanks.
Gee, that sure was a footer killer piece of CSS!
YIKES, this Engined site got updated by mistake. Can I revert to older Divi to fix the mess it made? How? What do you recommend? Dang…bad timing as I leave tomorrow for a week.
Never mind…I found the legacy and was able to remove Divi 2.4 and install the legacy. All is good. Hoping for new Engined soon though!
I spent several months customizing DIVI for a government website and launched the very day the DIVI update came out. I cloned the site onto my server and applied the updates – it broke most of my child theme style.css. Also, it is a mess on mobile.
Please keep me in the loop on this convo, as the DIVI support team is telling me that this is something I need to fix on 10+ websites that have been built using DIVI as the parent theme … when this is the very point of using child themes! To avoid breakage during updates!
This is so funny, I keep see “developers” or “programators” which cry that the new update made their work go way.
They don’t even know who to create a child theme, and they cry.
READ SOME DOCUMENTATION BEFORE YOU START TROWING WITH MUD THAT DIVI IS NOT WORKING
It’s working perfectly if you know HOW TO USE IT.
You just drop custom lines of code, in your child theme, whithout knowing what that code does, maybe you try to style in child theme and element, but the new update (since it’s has so many features) need to declare some custom style exactly for that element, using in document style, and those will overwrite yours…that means that divi is not working with child theme, read how selectors specificity works god dammit :)))
You call yourself a “developer” and you are afraid for your careers but you don’t even know the basic stuff.
I don’t know how you even have courage to charge money for this “service”.
Go read some specs/documentation and then start to shout out.
wow Miky, that was rude. I used to build WP sites from the ground, up. Then I discovered child themes which allowed me to spend more time on UI and design. In all of these years the concept of child themes – THAT ANY UPGRADE WILL NOT EFFECT MY CUSTOM CSS – has served me well.
Certainly, I can go in and tweek all of my style sheets, however – This is how I make a living , so to spend unbillable hours making these changes may render me without enough to pay the mortgage. Maybe you live at home, in your parent’s basement, and have the time to do this without having to worry about the 1st of the month rolling around, and no billable hours.
If you know so much more than the rest of us, do feel free to share and let us know your rates too, as someone as brilliant as you should get a lot of work out of this … if one can tolerate your attitude.
Just curious if you’ve been able to make any progress on allowing those of us using Engined to upgrade. Now that 2.5 is available I’m even more interested in being able to upgrade my site that uses Engined.
I just found this offering on the FB group and I wonder if it has any relevance to our needs here?
Note that YOU MUST UPDATE YOUR HEADER.PHP FILE in your Child Theme after upgrading from 2.3 > 2.4!
The source file was changed with the new version of Divi, and keeping your old 2.3 child file will result in a bunch of niggling issues (Search not working, Header Customizer not having desired effect, etc.) — be sure to copy over any mods when updating. (Note: If you aren’t familiar with Child Themes, don’t have a header.php file in yours, or created yours only recently in 2.4, you can likely ignore this.)
To check and see if your header.php file is 2.3 or 2.4, scroll down to Line 17:
2.3 = “”
2.4 = “”
I´ve been busy during the whole summer with the Engined update. ET has been releasing Divi 2.4X updates one after the other, and it has been a real pain in the neck to cope with all those changes. I finally finished the update on August 16th, right before I was going on vacation, and I was planning to release during the following week. Then on August 19th I got an email from Nick Roach inviting me to beta test Divi 2.5, so I thought I´d better wait and make sure the Engined update was ready for the new Divi 2.5 version (and for WordPress 4.3, for that matter). So once again I have to go through everything, which I´m doing now (I just didn´t have the time to test and recode during my vacation because my family also demands my time).
Regarding your info about the header.php, Engined doesn´t modify it, so that is not applicable.
Luis…thanks so much for the update and all the hard work. It sounds promising that you’ll soon have something for us. I totally support “family first”! Thank you.
I am using Divi 2.5.9 and just installed Divi Children. I will only be doing CSS changes but thought this would be a better approach than using the Theme options.
Is this incompatibility with DIvi 2.4 going to be a problem?
If you´ve downloaded the latest Divi Children version (2.0.8) you won´t have any problems. Those incompatibilities were taken care of in the latest release, as you can see in my post Developed, Zipped, Delivered… Divi Children 2.0.8 it´s yours.
I´m using Divi Children 2.0.8 with Divi 2.5.9 and WordPress 4.4.1 without problems.