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' );