create_manager(); $commercial_bootstrap = CommercialBootstrap::create_default(); $commercial_bootstrap->boot(); $this->register_integrations( $integration_manager ); if ( ! $this->is_admin_request() ) { return; } $integration_status_provider = new IntegrationStatusProvider( $integration_manager, $settings_repository ); $settings_page = new SettingsPage( $settings_repository, $integration_status_provider, new DashboardViewModel( $settings_repository, $integration_status_provider, new EventSummaryProvider( $event_store, $settings_repository ), new RecentEventsProvider( $event_store, $settings_repository ) ), new DiagnosticsProvider( $settings_repository, $integration_status_provider, $event_store, null, $commercial_bootstrap ) ); $asset_manager = new AdminAssetManager(); $admin_menu = new AdminMenu( $settings_page, $asset_manager ); $admin_menu->register_hooks(); } /** * Determine whether WordPress is handling an admin request. */ private function is_admin_request(): bool { return function_exists( 'is_admin' ) && is_admin(); } /** * Register frontend form integrations that are available. * * @param IntegrationManager $integration_manager Integration manager. */ private function register_integrations( IntegrationManager $integration_manager ): void { if ( function_exists( 'did_action' ) && did_action( 'init' ) > 0 ) { $integration_manager->register_available_integrations(); return; } if ( function_exists( 'add_action' ) ) { add_action( 'init', static function () use ( $integration_manager ): void { $integration_manager->register_available_integrations(); }, 20 ); } } }