init(); } /** * Initialize the plugin */ public function init() { // Hook into WordPress init add_action('init', [$this, 'on_init']); add_action('wp_loaded', [$this, 'on_wp_loaded']); } public function run($actions) { foreach ($actions as $action) { $this->{$action}(); } } public function on_init() { $actions = []; $this->run($actions); } public function on_wp_loaded() { $this->setup_filters(); $this->setup_actions(); } public function setup_filters() { $filters = [ 'login_error_mask', ]; $this->run($filters); } public function setup_actions() { $actions = [ 'mitigation_remove_footer_shake', 'remove_wp_generator', ]; $this->run($actions); add_filter('et_get_theme_version', [$this, 'remove_divi_version']); } public function login_error_mask() { add_filter('login_errors', function($error) { return 'La información proporcionada lamentablemente es incorrecta.'; }); } public function remove_divi_version() { return ''; } public function remove_wp_generator() { remove_action( 'wp_head', 'wp_generator' ); remove_action( 'wp_head', 'wc_generator' ); remove_action( 'wp_head', 'wlwmanifest_link' ); remove_action( 'wp_head', 'rsd_link' ); } public function mitigation_remove_footer_shake() { remove_action('login_footer', 'wp_shake_js', 12); } } Mitigation::get_instance();