Settings', ) ); } /** * Receive the event categories (terms) used by the event plugin. * * @param Event_Plugin $event_plugin Contains info about a certain event plugin. * * @return array An array of Terms. */ private static function get_event_terms( $event_plugin ): array { $taxonomy = $event_plugin::get_taxonomy(); if ( $taxonomy ) { $event_terms = get_terms( array( 'taxonomy' => $taxonomy, 'hide_empty' => true, ) ); return ! is_wp_error( $event_terms ) ? $event_terms : array(); } else { return array(); } } /** * Preparing the data and loading the template for the settings page. * * @return void */ public static function settings_page(): void { $plugin_setup = Setup::get_instance(); $event_plugins = $plugin_setup->get_active_event_plugins(); $event_terms = array(); foreach ( $event_plugins as $event_plugin ) { $event_terms = array_merge( $event_terms, self::get_event_terms( $event_plugin ) ); } $args = array( 'slug' => self::SETTINGS_SLUG, 'event_terms' => $event_terms, ); \load_template( ACTIVITYPUB_EVENT_EXTENSIONS_PLUGIN_DIR . 'templates/settings.php', true, $args ); } }