When upgrading to PHP 8.4 from 7.4 I got those errors:
Deprecated: iThemesSecurity\Ban_Hosts\Persistable::fill(): Implicitly marking parameter $ban as nullable is deprecated, the explicit nullable type must be used instead in /wp-content/plugins/better-wp-security/core/lib/ban-hosts/Persistable.php on line 27
Deprecated: iThemesSecurity\Ban_Users\Database_Repository::fill(): Implicitly marking parameter $ban as nullable is deprecated, the explicit nullable type must be used instead in /wp-content/plugins/better-wp-security/core/modules/ban-users/Database_Repository.php on line 268
I have let our developers know about these deprecated messages but rest assured that these will not cause anything to break on your site.
If you are seeing these on your front end please be sure that you have disabled define(‘WP_DEBUG_DISPLAY’, false); in your wp-config.php file. This will prevent these types of messages from showing on the front end of your site.
Just wanted to ask if there’s any ETA on when the code will be updated to avoid these deprecation warnings in php v8.4. My hosting provider recommends staying on php v8.2 to avoid these to be triggered.
The 2 files where this PHP 8.4 deprecation issue needs to be fixed (Persistable.php and Database_Repository.php) are identical in Basic 9.3.8/Pro 8.5.6. I checked this, so IMHO I don’t think this is a Basic plugin issue only.
My guess is you will only run into this deprecation notice when the Ban Users and Local Brute Force modules are enabled AND actual host/IP bans are taking place on the site. This can easily be tested while using the Pro 8.5.6 plugin.
You might be correct that this is not only a Basic issue. But when I check it on the Security page I get 20 deprecated errors in more files than you point out. See Screenshot below.