version = AISP_VERSION; $this->plugin_name = 'ai-scraping-protector'; $this->load_dependencies(); $this->define_admin_hooks(); $this->define_public_hooks(); } private function load_dependencies() { require_once AISP_PLUGIN_DIR . 'includes/class-asp-loader.php'; require_once AISP_PLUGIN_DIR . 'includes/class-asp-rate-limiter.php'; require_once AISP_PLUGIN_DIR . 'includes/class-asp-content-protector.php'; require_once AISP_PLUGIN_DIR . 'includes/class-asp-bot-detector.php'; require_once AISP_PLUGIN_DIR . 'admin/class-asp-admin.php'; require_once AISP_PLUGIN_DIR . 'public/class-asp-public.php'; // Initialize the content protector $content_protector = new AISP_Content_Protector(); $content_protector->init(); // Initialize the bot detector $bot_detector = new AISP_Bot_Detector(); $bot_detector->init(); // Initialize the rate limiter $rate_limiter = new AISP_Rate_Limiter(); $rate_limiter->init(); $this->loader = new AISP_Loader(); } private function define_admin_hooks() { $plugin_admin = new AISP_Admin($this->plugin_name, $this->version); // Add admin hooks $this->loader->add_action('admin_menu', $plugin_admin, 'add_admin_menu'); $this->loader->add_action('admin_init', $plugin_admin, 'register_settings'); $this->loader->add_action('admin_enqueue_scripts', $plugin_admin, 'enqueue_admin_assets'); } private function define_public_hooks() { $plugin_public = new AISP_Public($this->plugin_name, $this->version); // Add public hooks (removed enqueue_scripts since JS file doesn't exist) $this->loader->add_action('wp_enqueue_scripts', $plugin_public, 'enqueue_styles'); } public function run() { $this->loader->run(); } public function get_plugin_name() { return $this->plugin_name; } public function get_version() { return $this->version; } }