booted ) { return; } $this->booted = true; add_filter( 'lang_dir_for_domain', array( self::class, 'bundled_languages' ), 10, 3 ); add_action( 'init', array( Migrator::class, 'maybe_migrate' ), 1 ); add_action( 'init', array( Migrator::class, 'maybe_flush_rewrite_rules' ), 99 ); ( new PostTypes() )->register(); ( new Taxonomies() )->register(); ( new Capabilities() )->register(); ( new InstructorCaps() )->register(); Providers::register(); ( new ObjectPostsSync() )->register(); ( new PostPrimer() )->register(); ( new People() )->register(); ( new ProgressJobs() )->register(); ( new CategorySync() )->register(); ( new CategoryJobs() )->register(); ( new Roles() )->register(); ( new AdminGuard() )->register(); ( new RunJobs() )->register(); ( new NotifyJobs() )->register(); ( new MemberMailWrapper() )->register(); ( new MasterStudySource() )->register(); ( new \RoosterLMS\Import\Amelia\AmeliaSource() )->register(); ( new \RoosterLMS\Import\ERoom\ERoomSource() )->register(); ( new \RoosterLMS\Import\Lms\LmsSources() )->register(); ( new QuizSync() )->register(); ( new ReleaseSweeper() )->register(); ( new CertificateIssuer() )->register(); ( new TemplateMap() )->register(); ( new AttendanceCertificates() )->register(); ( new UserCleanup() )->register(); ( new PrivacyTools() )->register(); ( new PrerequisiteHealth() )->register(); ( new \RoosterLMS\Ledger\UnitStatsHealth() )->register(); ( new CollationHealth() )->register(); ( new \RoosterLMS\Account\AccountModule() )->register(); ( new \RoosterLMS\Feedback\SendFeedback() )->register(); ( new \RoosterLMS\Live\LiveModule() )->register(); ( new \RoosterLMS\UI\LessonDock() )->register(); ( new \RoosterLMS\UI\PageCaches() )->register(); ( new \RoosterLMS\Blocks\CourseLink() )->register(); ( new \RoosterLMS\Live\Providers\ProviderAdmin() )->register(); ( new \RoosterLMS\Live\ERoom\Bridge() )->register(); ( new \RoosterLMS\Plans\PlansModule() )->register(); ( new \RoosterLMS\Jobs\DailyJobs() )->register(); ( new \RoosterLMS\S1b\Module() )->register(); ( new \RoosterLMS\S1c\Module() )->register(); ( new \RoosterLMS\S1d\Module() )->register(); ( new \RoosterLMS\S1r\Module() )->register(); ( new \RoosterLMS\S1f\Module() )->register(); ( new \RoosterLMS\Messages\MessagesModule() )->register(); ( new \RoosterLMS\S1n2\Module() )->register(); ( new \RoosterLMS\Events\EventsModule() )->register(); ( new \RoosterLMS\HC1b\Module() )->register(); ( new \RoosterLMS\HC1u\Module() )->register(); ( new \RoosterLMS\HC1c\Module() )->register(); ( new \RoosterLMS\HC11\A1Module() )->register(); ( new \RoosterLMS\HC11\A2Module() )->register(); ( new \RoosterLMS\HC11\C1Module() )->register(); ( new \RoosterLMS\HC11\B1Module() )->register(); ( new \RoosterLMS\HC11\B2Module() )->register(); ( new \RoosterLMS\HC11\C2Module() )->register(); ( new \RoosterLMS\HC11\EModule() )->register(); ( new \RoosterLMS\SB\SModule() )->register(); ( new \RoosterLMS\SB\MModule() )->register(); ( new \RoosterLMS\SB\ARModule() )->register(); ( new \RoosterLMS\Persons\PersonsModule() )->register(); \RoosterLMS\Persons\SelfProfile::register(); ( new \RoosterLMS\MA\CModule() )->register(); ( new \RoosterLMS\MA\MModule() )->register(); ( new \RoosterLMS\MA\KModule() )->register(); ( new \RoosterLMS\MA\QModule() )->register(); ( new \RoosterLMS\MA\GModule() )->register(); ( new \RoosterLMS\MA\MapModule() )->register(); ( new \RoosterLMS\Display\DisplayModule() )->register(); \RoosterLMS\Demo\DemoLinks::register(); \RoosterLMS\Demo\DemoDock::register(); ( new \RoosterLMS\Chat\ChatModule() )->register(); ( new \RoosterLMS\Content\ChangeSignals() )->register(); ( new \RoosterLMS\UI\Slots() )->register(); ( new \RoosterLMS\UI\BlockStyles() )->register(); add_filter( 'render_block', array( \RoosterLMS\Blocks\Render\AccountMenu::class, 'header_action' ), 20, 2 ); ( new \RoosterLMS\CourseBuilder\CbModule() )->register(); ( new \RoosterLMS\OW\SModule() )->register(); ( new \RoosterLMS\OW\UModule() )->register(); ( new \RoosterLMS\EQ\AModule() )->register(); ( new \RoosterLMS\EQ\BModule() )->register(); ( new \RoosterLMS\H5P\H5PModule() )->register(); ( new Assets() )->register(); ( new RestModule() )->register(); ( new CoreRestGuard() )->register(); ( new BlockRegistry() )->register(); ( new Shortcodes() )->register(); ( new Interactivity() )->register(); ( new Router() )->register(); ( new Templates() )->register(); ( new ContentGuard() )->register(); ( new ListingGuard() )->register(); ( new Redirects() )->register(); ( new PortalAlias() )->register(); ( new CertificateRoute() )->register(); ( new ElementorModule() )->register(); if ( defined( 'WP_CLI' ) && WP_CLI ) { ( new Commands() )->register(); } ( new AdminMenuSections() )->register(); if ( is_admin() ) { ( new AdminModule() )->register(); } else { add_action( 'rest_api_init', array( \RoosterLMS\Admin\Home\HomeModule::class, 'library' ), 5 ); } } public static function bundled_languages( $path, $domain, $locale ) { if ( 'rooster-lms' !== $domain || ! is_string( $locale ) || ( false !== $path && ! \RoosterLMS\I18n\LanguagePacks::is_pack_dir( (string) $path ) ) ) { return $path; } return \RoosterLMS\I18n\LanguagePacks::bundles( $locale ) ? ROOSTER_LMS_DIR . 'languages/' : $path; } }