init(); } /** * Initialize the plugin */ private function init() { // Load dependencies $this->load_dependencies(); // Initialize hooks add_action('init', array($this, 'init_plugin')); // Initialize admin components immediately if in admin area if (is_admin()) { $this->init_admin(); } // Load modules $this->load_modules(); } /** * Load required files */ private function load_dependencies() { // Core includes require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/class-core.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/class-utils.php'; // Admin includes if (is_admin()) { require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'admin/class-admin.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'admin/class-admin-pages.php'; } // Module includes require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-robots-txt.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-sitemap-xml.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-llms-txt.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-google-setup.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-meta-tags.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-structured-data.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-seo-health.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-head-footer.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-visual-elements-gallery.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-amp.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-ecosystem-coordinator.php'; // API includes require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/api/class-sxg-api-client.php'; require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/api/class-ai-client.php'; // AI modules require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-ai-provider.php'; } /** * Initialize plugin components */ public function init_plugin() { // Load text domain load_plugin_textdomain('tigerstyle-heat', false, dirname(plugin_basename(__FILE__)) . '/languages'); } /** * Initialize admin components */ public function init_admin() { TigerStyleSEO_Admin::instance(); } /** * Load and initialize modules */ private function load_modules() { $this->modules = array( 'robots_txt' => TigerStyleSEO_RobotsTxt::instance(), 'sitemap_xml' => TigerStyleSEO_Sitemap_xml::instance(), 'llms_txt' => TigerStyleSEO_Llms_txt::instance(), 'google_setup' => TigerStyleSEO_Google_setup::instance(), 'meta_tags' => TigerStyleSEO_Meta_tags::instance(), 'structured_data' => TigerStyleSEO_StructuredData::instance(), 'seo_health' => TigerStyleSEO_Seo_health::instance(), 'head_footer' => TigerStyleSEO_Head_footer::instance(), 'visual_elements_gallery' => TigerStyleSEO_VisualElementsGallery::instance(), 'amp' => TigerStyleSEO_AMP::instance(), 'ai_provider' => TigerStyleSEO_AI_Provider::instance(), 'ecosystem_coordinator' => TigerStyleSEO_EcosystemCoordinator::instance(), ); } /** * Get a specific module */ public function get_module($module_name) { return isset($this->modules[$module_name]) ? $this->modules[$module_name] : null; } /** * Plugin activation */ public static function activate() { // Load core class for activation require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/class-core.php'; // Run activation hooks for all modules TigerStyleSEO_Core::activate(); } /** * Plugin deactivation */ public static function deactivate() { // Load core class for deactivation require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/class-core.php'; TigerStyleSEO_Core::deactivate(); } } // Register activation/deactivation hooks register_activation_hook(__FILE__, array('TigerStyleSEO', 'activate')); register_deactivation_hook(__FILE__, array('TigerStyleSEO', 'deactivate')); /** * Initialize the plugin */ function tigerstyle_heat_init() { return TigerStyleSEO::instance(); } // Start the plugin add_action('plugins_loaded', 'tigerstyle_heat_init'); /** * Helper function to get the main plugin instance */ function tigerstyle_heat() { return TigerStyleSEO::instance(); }