<?php
use iThemesSecurity\Actor\Lockout_Module;
use iThemesSecurity\Ban_Users\Ban;
use iThemesSecurity\Ban_Users\Database_Repository;
use iThemesSecurity\Lib\Lockout\Context;
/**
* Listens to the new banned IP hook and persists the IP to the module's settings.
*
* @param string $ip The IP address.
* @param Context $context The lockout context.
*/
function itsec_ban_users_handle_new_banned_ip( $ip, $context = null ) {
ITSEC_Modules::load_module_file( 'labels.php' );
$repository = ITSEC_Modules::get_container()->get( Database_Repository::class );
if ( $context instanceof Context && $lockout = $context->get_lockout_module() ) {
$actor = new Lockout_Module( $lockout );
} else {
$actor = null;
}
$ban = new Ban( $ip, $actor );
try {
$repository->persist( $ban );
} catch ( \iThemesSecurity\Exception\WP_Error $e ) {
}
}
add_action( 'itsec_new_banned_ip', 'itsec_ban_users_handle_new_banned_ip', 10, 2 );