plugin_path = dirname( dirname( __FILE__ ) ) . '/'; $this->plugin_url = plugin_dir_url( dirname( __FILE__ ) ); $this->load_dependencies(); $this->init_classes(); // Load textdomain on init action to comply with WordPress 6.7+ requirements. add_action( 'init', array( $this, 'load_textdomain' ) ); } /** * Load plugin text domain for internationalization */ public function load_textdomain() { load_plugin_textdomain( 'ai-summary-generator', false, dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/' ); } /** * Load plugin dependencies */ private function load_dependencies() { require_once $this->plugin_path . 'includes/class-ai-summary-generator-core.php'; require_once $this->plugin_path . 'includes/class-ai-summary-generator-settings.php'; require_once $this->plugin_path . 'includes/class-ai-summary-generator-admin.php'; require_once $this->plugin_path . 'includes/class-ai-summary-generator-ajax.php'; require_once $this->plugin_path . 'includes/class-ai-summary-generator-frontend.php'; } /** * Initialize classes */ private function init_classes() { AI_Summary_Generator_Settings::init(); AI_Summary_Generator_Ajax::init(); // Initialize admin hooks - some need to work on both admin and frontend. AI_Summary_Generator_Admin::init(); if ( ! is_admin() ) { // Admin-specific functionality is already initialized above. AI_Summary_Generator_Frontend::init(); } } /** * Get plugin path * * @return string */ public function get_plugin_path() { return $this->plugin_path; } /** * Get plugin URL * * @return string */ public function get_plugin_url() { return $this->plugin_url; } }