This is a quick update to let you all know that version 1.10.17 was just released and it is PHP 8 compatible. Also, here you can read more about how we are dealing with our RC 3 and the changes we are implementing to our support system.
Some of you were witnesses to how hard it was for us to iron out some of the last incompatibilities with PHP 8 (PHP 8.0 specifically since 8.1 and 8.2 are a breeze to work with).
I would like to thank Werner for the help in the last few days with debugging what I consider to be one of the top 10 hardest issues I ever had to deal with in my career: an issue that left no trace on any logs and only seems to affect a handful of users with little to no elements in common in their networks.
It literally took replacing core WordPress files to even find what the cause was, and the process wasn’t fun. But, in the end, we could reach our primary goals.
For those technically inclined: some customers were facing critical errors during the last step of the sign-up. The customer would get created, but not the site (or the site would be heavily corrupted).
In the end, the problem was not WP Ultimo related per se, and the fix took two lines of code. It seems that PHP 8 is a bit more restrictive when unserializing objects. WP Ultimo unserializes objects it finds during database cloning to be able to perform a search and replace routine to the values. When PHP 8 failed to successfully unserialize some objects, it would quietly fail, messing up the rest of the process completely without leaving any trace.
Thankfully it’s over, and we now have a new technique to troubleshoot and find these kinds of issues in the future. No more week-long marathons to try to figure out why something is only happening in production on a live network =)
In any case, 1.10.17 should appear as an update on your dashboard, and you can also download it here directly.
If you were forced to update to PHP 8.0, I strongly recommend you go ahead and upgrade again to 8.1, if your other plugins support it. PHP 8.0 is full of “interesting” behaviors that were later revisited in 8.1.
RC 3 and Support
We ended up spending way more time on this particular issue in V1 than we originally expected and, unfortunately, that had the negative effect of delaying everything else in our plan in a couple of days.
That being said, tomorrow the team will do a last round of testing based on the latest feedback we got from customers that reported issues with the previous builds and we’ll release RC 3 by the end of the day.
We’ll have the final 2.1 build ready next Tuesday.
I’ve been dealing with most if not all technical support tickets we receive in our various support channels for a week now and it has been an invaluable opportunity to rethink some of the support flows we had in place and make sure we have efficient processes in place.
It’s still early, but I’m glad to see that it is already making a difference:
I had to push the launch of the changes we’re making to how support works, the finalized “My Account” dashboard, and a bunch of other much-needed improvements to our customer success practices to next week due to the reasons listed above, but rest assured that they are a solid step towards establishing a more consistent and predictable relationship between developers and customers moving forward.