load_dependencies(); // Note: load_plugin_textdomain() not needed for WordPress.org plugins since WP 4.6+. // WordPress automatically loads translations for plugins hosted on WordPress.org. // Initialize compatibility. $this->init_compatibility(); // Initialize admin. if ( is_admin() ) { $this->init_admin(); } // Initialize frontend. // Note: Must initialize even in admin context for AJAX to work. // since admin-ajax.php is considered an admin request. $this->init_frontend(); // Initialize hooks. $this->init_hooks(); } /** * Load dependencies */ private function load_dependencies() { // Traits are loaded via autoloader. // Additional dependencies can be loaded here if needed. } /** * Initialize compatibility layer */ private function init_compatibility() { AFFCF_Plugin_Checker::get_instance(); // Initialize ACF compatibility if active. if ( AFFCF_Plugin_Checker::is_acf_active() ) { AFFCF_ACF_Compat::get_instance(); } // Initialize SCF compatibility if active. if ( AFFCF_Plugin_Checker::is_scf_active() ) { AFFCF_SCF_Compat::get_instance(); } // Initialize unified field manager. AFFCF_Field_Manager::get_instance(); } /** * Initialize admin */ private function init_admin() { AFFCF_Admin::get_instance(); } /** * Initialize frontend */ private function init_frontend() { AFFCF_Frontend::get_instance(); } /** * Initialize hooks */ private function init_hooks() { AFFCF_Hooks::get_instance(); } }