init_classes(); $this->init_hooks(); } private function init_classes() { $this->db_manager = new StudiouWC_DB_Manager(); $this->settings_manager = new StudiouWC_Settings_Manager(); $this->admin_view = new StudiouWC_Admin_View($this->db_manager, $this->settings_manager); $this->export_handler = new StudiouWC_Export_Handler($this->db_manager, $this->settings_manager); } private function init_hooks() { add_action('init', array($this, 'init')); add_action('admin_menu', array($this->admin_view, 'add_admin_menu')); add_action('admin_enqueue_scripts', array($this->admin_view, 'enqueue_admin_scripts')); add_action('wp_ajax_studiou_export_csv', array($this->export_handler, 'export_csv')); add_action('wp_ajax_studiou_save_settings', array($this->settings_manager, 'save_settings')); register_activation_hook(STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_FILE, array($this->settings_manager, 'activate')); register_deactivation_hook(STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_FILE, array($this, 'deactivate')); } public function init() { // Load text domain - this is now handled in the main plugin file // but keeping this for backward compatibility if (!did_action('plugins_loaded')) { load_plugin_textdomain( STUDIOU_WC_CUSTOM_REPORTS_TEXT_DOMAIN, false, dirname(plugin_basename(STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_FILE)) . '/languages' ); } } public function deactivate() { // Cleanup if needed // Note: We don't delete settings on deactivation, only on uninstall } public static function get_text_domain() { return STUDIOU_WC_CUSTOM_REPORTS_TEXT_DOMAIN; } public static function get_version() { return STUDIOU_WC_CUSTOM_REPORTS_VERSION; } public static function get_plugin_dir() { return STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_DIR; } public static function get_plugin_url() { return STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_URL; } }