I have analyzed the issue in detail and figured out what the situation is.
I've been working on this website for a while, and Toolset plugins have also been installed for months (CRED too), but this is the time when I realized that the PHP error reporting level is changed by CRED, which I consider to be a bad practice.
I did not notice that CRED defines error_reporting(E_ALL) in a "sort of hard coded manner", however in the case of CRED 1.4.1 and below the plugin used to use error_reporting(E_ALL ^ E_NOTICE) which was changed to error_reporting(E_ALL) in CRED 1.4.2.
So all the notices were suppressed by CRED 1.4.1 and below and I had not even realized it. I thought I had error reporting set to E_ALL, but this was not the case! By introducing this change in CRED 1.4.2, the plugin was "sort of fixed", because it should not have used error_reporting(E_ALL ^ E_NOTICE) at all. Actually, your plugins should not not change error reporting in this way at all, but that is another story. (Site administrator should be able to decide what reporting level they need and plugins should respect their settings.)
Now I am faced with the task of deciding what to with plugins that generate notices. It would have been nice if CRED had not suppressed notices in the first place 🙁
Lessons learned? I need to be more cautions in the future and check whether plugins change PHP error reporting or not.
Please report this issue to you developer team. I think they should consider abandoning this practice:
if (defined('WP_DEBUG') && WP_DEBUG) {
error_reporting(E_ALL);
ini_set("display_errors", 1);
}
A lot of people use these settings on a live site (including me):
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Since just by defining WP_DEBUG to be true does not mean someone wants error_reporting(E_ALL), or anything else, as well.
regards
G