is_compatible() ) { $this->init(); } } public function is_compatible(): bool { if ( version_compare( PHP_VERSION, '8.1', '<' ) ) { add_action( 'admin_notices', function() { echo '

'; echo esc_html__( 'AI Bulk Post requires PHP 8.1 or higher.', 'ai-bulk-post' ); echo '

'; }); return false; } return true; } public function init(): void { do_action( 'aibp_before_init' ); $this->include_files(); do_action( 'aibp_loaded' ); } public function include_files(): void { require_once AIBP_PATH . 'includes/AI/Provider.php'; require_once AIBP_PATH . 'includes/AI/Providers/OpenAI.php'; require_once AIBP_PATH . 'includes/AI/Providers/GoogleGemini.php'; require_once AIBP_PATH . 'includes/AI/Providers/Grok.php'; require_once AIBP_PATH . 'includes/AI/Providers/DeepSeek.php'; require_once AIBP_PATH . 'includes/AI/AI.php'; require_once AIBP_PATH . 'includes/Agents/Agent.php'; require_once AIBP_PATH . 'includes/Cron/Cron.php'; require_once AIBP_PATH . 'includes/Cron/Handler.php'; require_once AIBP_PATH . 'includes/Log/ActivityLog.php'; require_once AIBP_PATH . 'includes/REST/Agent_Controller.php'; require_once AIBP_PATH . 'includes/Helper/Helper.php'; require_once AIBP_PATH . 'includes/Post_Types/Post_Types.php'; require_once AIBP_PATH . 'includes/Admin/Admin_Page.php'; require_once AIBP_PATH . 'includes/Admin/Admin_Page_Dashboard.php'; require_once AIBP_PATH . 'includes/Admin/Admin_Page_Settings.php'; require_once AIBP_PATH . 'includes/Admin/Admin.php'; new \AIBP\Admin\Admin(); new \AIBP\Admin\Admin_Page_Dashboard(); new \AIBP\Admin\Admin_Page_Settings(); new \AIBP\Post_Types\Post_Types(); new \AIBP\REST\Agent_Controller(); new \AIBP\Cron\Cron(); } } AIBP::instance(); function aibp_plugin_activate(): void { // Run migration from v1.x if needed. if ( get_option( 'aibp_version' ) !== '2.2.0' ) { AIBP\Migration::run(); } update_option( 'aibp_version', '2.2.0' ); flush_rewrite_rules(); } register_activation_hook( __FILE__, 'aibp_plugin_activate' ); function aibp_plugin_deactivate(): void { flush_rewrite_rules(); } register_deactivation_hook( __FILE__, 'aibp_plugin_deactivate' );