ADVAIPBL_PLUGIN_PATH . 'includes/lib/RobThree/Auth/', 'BaconQrCode\\' => ADVAIPBL_PLUGIN_PATH . 'includes/lib/BaconQrCode/', 'DASPRiD\\Enum\\' => ADVAIPBL_PLUGIN_PATH . 'includes/lib/DASPRiD/Enum/', 'GeoIp2\\' => ADVAIPBL_PLUGIN_PATH . 'includes/lib/GeoIp2/', 'MaxMind\\Db\\' => ADVAIPBL_PLUGIN_PATH . 'includes/lib/MaxMind/Db/', ]; foreach ($prefix_map as $prefix => $base_dir) { $len = strlen($prefix); if (strncmp($prefix, $class, $len) !== 0) { continue; } $relative_class = substr($class, $len); $file = rtrim($base_dir, '/') . '/' . str_replace('\\', '/', $relative_class) . '.php'; if (file_exists($file)) { require $file; return; } } }); require_once ADVAIPBL_PLUGIN_PATH . 'includes/class-advaipbl-geolocation-manager.php'; require_once ADVAIPBL_PLUGIN_PATH . 'includes/class-advaipbl-session-manager.php'; require_once ADVAIPBL_PLUGIN_PATH . 'includes/class-advaipbl-main.php'; register_activation_hook( __FILE__, [ 'ADVAIPBL_Main', 'activate_plugin' ] ); register_deactivation_hook( __FILE__, [ 'ADVAIPBL_Main', 'deactivate_plugin' ] ); function advaipbl_initialize() { load_plugin_textdomain( 'advanced-ip-blocker', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); ADVAIPBL_Main::get_instance(); } add_action( 'after_setup_theme', 'advaipbl_initialize' ); function advaipbl_add_settings_link( $links ) { $settings_link = sprintf( '%s', esc_url( admin_url( 'admin.php?page=advaipbl_settings_page' ) ), esc_html__( 'Settings', 'advanced-ip-blocker' ) ); array_unshift( $links, $settings_link ); return $links; } add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'advaipbl_add_settings_link' ); function advaipbl_register_cli_commands() { if ( defined( 'WP_CLI' ) && WP_CLI ) { if ( version_compare( PHP_VERSION, '8.1', '>=' ) ) { require_once ADVAIPBL_PLUGIN_PATH . 'includes/lib/RobThree/Auth/TwoFactorAuth.php'; require_once ADVAIPBL_PLUGIN_PATH . 'includes/class-advaipbl-2fa-manager.php'; } require_once ADVAIPBL_PLUGIN_PATH . 'includes/class-advaipbl-cli.php'; WP_CLI::add_command( 'advaipbl', 'ADVAIPBL_CLI' ); } } add_action( 'plugins_loaded', 'advaipbl_register_cli_commands', 20 ); function advaipbl_activate_plugin() { $instance = ADVAIPBL_Main::get_instance(); $instance->setup_database_tables(); // Disparar el asistente SOLO en instalaciones nuevas. if ( false === get_option( 'advaipbl_version_installed' ) ) { add_option( 'advaipbl_run_setup_wizard', true ); } // Actualizar/establecer la versión instalada. update_option( 'advaipbl_version_installed', ADVAIPBL_VERSION ); $instance->resync_block_transients(); } register_activation_hook( __FILE__, 'advaipbl_activate_plugin' );