Background: Yesterday I updated a plugin called WP Security Audit Log to their latest version 4.0.0 (from 184.108.40.206).
After the upgrade, the site was completely blown up. After some research I found that the biggest damage was done to another plugin called Polylang which is meant to translate everything.
The main issue was that it was completely impossible to call the functions from Polylang like pll_current_language, with the error
PHP Fatal error: Uncaught Error: Call to undefined function pll_current_language()
After long hours, I decided to recover a backup and everything went back to normality.
At this point you might be thinking:
You could have simply disabled WP Security Audit Log plugin and everything should go back to normal...
This is the mindblowing part (for me). Even by just leaving enabled Polylang and 100% of the other plugins disabled, the Polylang functions like pll_current_language were still unreachable after the update of WP Security Audit Log
At first, I preferred not to restore the backup because things were going to be lost, but I could not simply understand how this could be possible.
How can a plugin update completely blow up the "callability" of other plugins functions even when disabling this plugin???
There are two only reasonable options:
- It has introduced at some configuration file, .htaccess, wp-config.php or wherever some options to avoid this, which I've not been able to track down.
- It has introduced some mods in the database, which is unlikely because technically database won't ever affect function behavior.
I'm writing this because I lost like 5+ hours yesterday trying to track down the issue without success, and If I'm 100% sincere, I discovered that the issue was caused by WP Security Audit Log upgrade by mere coincidence by upgrading each of the plugins in the queue one by one to check their effect on the site.
Any insights on what could have exactly caused this or to help me track down this just for learning purposes?