Support

Admin Tools for WordPress

#43451 Method ReflectionProperty::setAccessible() is deprecated since 8.5

Posted in ‘Admin Tools for WordPress’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

WordPress version
7.1.3
PHP version
8.5
Admin Tools version
2.0.3

Latest post by nicholas on Tuesday, 27 October 2026 02:33 CDT

[email protected]

When viewing the site I get:
Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /mnt/.../public_html/wp-content/plugins/admintoolswp/app/plugins/waf/feature/dfishield.php on line 49

Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /mnt/.../public_html/wp-content/plugins/admintoolswp/app/plugins/waf/feature/phpshield.php on line 73

At the very top of the site. The site appears to load fine.

When I go to delete plugins, I get
Deletion failed: Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /mnt/.../public_html/wp-content/plugins/admintoolswp/app/plugins/waf/feature/dfishield.php on line 49 Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /mnt/.../public_html/wp-content/plugins/admintoolswp/app/plugins/waf/feature/dfishield.php on line 49 Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /mnt/.../public_html/wp-content/plugins/admintoolswp/app/plugins/waf/feature/phpshield.php on line 73 Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /mnt/.../public_html/wp-content/plugins/admintoolswp/app/plugins/waf/feature/phpshield.php on line 73 {"success":true,"data":{"delete":"plugin","slug":"bsa-elementor-widgets","plugin":"bsa-elementor-widgets\/bsa-elementor-widgets.php","pluginName":"BSA Elementor Widgets"}}

The delete of the plugin appears to have worked as it doesn't show the plugin anymore, but I get that error every time I delete it. 

When I tried to update a plugin, I get
Update failed: Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /mnt/.../public_html/wp-content/plugins/admintoolswp/app/plugins/waf/feature/dfishield.php on line 49 Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /mnt/.../public_html/wp-content/plugins/admintoolswp/app/plugins/waf/feature/dfishield.php on line 49 Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /mnt/.../public_html/wp-content/plugins/admintoolswp/app/plugins/waf/feature/phpshield.php on line 73 Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /mnt/.../public_html/wp-content/plugins/admintoolswp/app/plugins/waf/feature/phpshield.php on line 73 {"success":true,"data":{"update":"plugin","slug":"angie","oldVersion":"Version 1.1.16","newVersion":"Version 1.1.19","plugin":"angie\/angie.php","pluginName":"Angie"}}

It appears to have updated.

nicholas
Akeeba Staff
Manager

Deprecation notices are not errors. The PHP language developers use them to communicate to us  that something in the PHP language is going to change (or be removed) in a future version of PHP. I can tell you that setAccessible was deprecated in 8.5 and will be removed in 9.0. I knew about this deprecation since August 2025, before PHP 8.5 was released. I just haven't gotten to addressing it just yet. I chose to defer it because both PHP 8.5 and 8.6 only print a deprecation notice. They do not even raise it to a warning just yet.

The actual problem I see in your case is that you have set error_reporting to its maximum level E_ALL, and have set display_errors to 1 – both are PHP settings. These values are only meant for software development. They are a bad choice for a production site. Your production site must have display_errors set to 0, and error_reporting set to a reasonable level, e.g. E_ERROR (only log fatal errors).

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

[email protected]

Yes, thank you for the reply. It was a local php.ini overriding the System PHP settings and the settings in Wordpress. It is a cPanel Hosted account, and the MultiPHP INI Editor was used at some point to change display_errors = On. May have been changed to default to that when the PHP was changed to 8.5 through cPanel. I would have to check to see if that is a default.  Thanks for letting me know about the setAccessible and your plans with it. 
Thanks again for all that you do!

nicholas
Akeeba Staff
Manager

You're welcome, and thank you for your report and your kind words!

Another thing you should be aware, should you bump into it: The constant WP_DEBUG sets WordPress' debug mode. If this constant is true, and the constant WP_DEBUG_DISPLAY is also set to true (it is, by default), WordPress will enable output of PHP errors, warnings, and notices to the output by calling ini_set( 'display_errors', 1 ), overriding your PHP configuration. You can see that behavior in wp-includes/load.php. Since WordPress 4.6.0 this behavior can also be controlled by plugins through the enable_wp_debug_mode_checks filter. The crazy bit is that if this filter tells WordPress to skip debug mode checks, WordPress will NOT override PHP's error reporting, error display, and error logging as it usually does which may confuse the heck out of you when troubleshooting your site, or trying to understand why disabling a plugin seems to "magically change your PHP settings". As you can tell, I've lost quite a bit of time on that at some point...

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!