PHP Fatal error and plugin conflict
I am receiving a PHP Fatal error that appears to be interfering with another plugin – Simple History and breaking my site functionality.
Below is the error from the error log. I am hosting with WordPress.com Business hosting and we troubleshot the error and narrowed it down to the wpDiscuz plugin.
PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function wpdFormAttr\Login\SocialLogin::userAvatar(), 5 passed in /wordpress/core/5.1.1/wp-includes/class-wp-hook.php on line 286 and exactly 6 expected in /wpcom-147113777/wp-content/plugins/wpdiscuz/forms/wpdFormAttr/Login/SocialLogin.php:506
I opened a support ticket with Simple History ( https://wordpress.org/support/topic/error-500-wordpress-business-hosting/) but I do not believe that is the root cause of the issue since the PHP error above points to your plugin.
Everything was working fine until today!!!
Any help is appreciated!!!
Thank you for letting us know. We're going to check the issue. I'll update this topic asap.
That is not correct according to the Wordpress engineers. I troubleshot the issue with them and they indicated the error is in your code. The error in your code is generating a PHP error that is causing conflicts with Wordpress and other plugins. I’d suggest you investigate further and correct the error in your code as it is causing errors with the Simple History plugin and potentially other plugins as well.
this is not a wpDiscuz issue for sure. The plugin doesn't pass all the arguments of the following filter, and it causes the issue. They should check and make sure all those arguments are passed, as all arguments are necessary for wpDiscuz plugin work.
return apply_filters( 'get_avatar', $avatar, $id_or_email, $size, $default, $alt, $args );
Ok, I will investigate further and get back to you.
If you change line 506 in SocialLogin.php to
this is not a wpDiscuz issue for sure. The plugin doesn't pass all the arguments of the following filter, and it causes the issue. They should check and make sure all those arguments are passed, as all arguments are necessary for wpDiscuz plugin work.return apply_filters( 'get_avatar', $avatar, $id_or_email, $size, $default, $alt, $args );
This is a wpDiscuz issue for sure!
Your code REQUIRES OPTIONAL ARGUMENT,
which is, BTW, added in WP 4.2
So your plugin is screwing up every other plugin which is invoking get_avatar with less than 6 arguments!
Correction to my previous post:
This is not the wpDiscuz plugin issue for sure. We just use the hook to change avatars we don't need to call a function.
However, we've made some changes in the plugin core and make the sixth parameter non-required to avoid such issues with the other plugins.
Thanks. When can we expect update release?
I'm sorry but we can't provide any ETA yet.