get_extensions(), $manager->statuses()]; } private function extension_type($extension) { $type = method_exists($extension, 'get_type') ? strtolower((string) $extension->get_type()) : 'free'; return $type === 'pro' ? 'pro' : 'free'; } private function extension_category($extension) { $category = method_exists($extension, 'get_category') ? (string) $extension->get_category() : 'other'; return sanitize_key($category ?: 'other'); } private function extension_description($extension) { if (!method_exists($extension, 'get_description')) { return __('Extension registered with EventQora Core.', 'eventqora'); } $description = trim(wp_strip_all_tags((string) $extension->get_description())); return $description ?: __('Extension registered with EventQora Core.', 'eventqora'); } private function extension_settings_url($extension) { if (!method_exists($extension, 'get_settings_url')) { return ''; } $value = trim((string) $extension->get_settings_url()); if ($value === '') { return ''; } if (filter_var($value, FILTER_VALIDATE_URL)) { return esc_url($value); } return esc_url(admin_url('admin.php?page=' . sanitize_key($value))); } private function render_card($extension, $status) { $id = sanitize_key((string) $extension->get_id()); $name = trim((string) $extension->get_name()); $version = trim((string) $extension->get_version()); $type = $this->extension_type($extension); $category = $this->extension_category($extension); $description = $this->extension_description($extension); $settings_url = $this->extension_settings_url($extension); $status_class = sanitize_html_class($status ?: 'registered'); ?>

get_registry(); $all = count($extensions); $installed = 0; $free = 0; $pro = 0; foreach ($extensions as $extension) { $type = $this->extension_type($extension); $type === 'pro' ? $pro++ : $free++; $id = (string) $extension->get_id(); if (isset($statuses[$id]) && in_array($statuses[$id], ['booted', 'booted_legacy'], true)) { $installed++; } } $diagnostics = []; if (class_exists('EVQRA_Extension_Manager')) { $diagnostics = EVQRA_Extension_Manager::instance()->diagnostics(); } ?>

get_id(); $this->render_card($extension, $statuses[$id] ?? 'registered'); endforeach; ?>