getAvailableServices(false); foreach($integrations as $service => $integration) { // if ($integration->isSetUp() && !empty($integration->enabledContentTypes())) { if (!empty($integration->enabledContentTypes())) { add_submenu_page( 'jvb-integrations', $integration->getTitle() . ' Defaults', $integration->getTitle(), 'manage_options', 'jvb-integration-'.$service, [$integration, 'renderDefaults'] ); } } } /** * Enqueue admin assets */ public function enqueueAdminAssets(string $hook): void { // Check if we're on a JVB admin page if (!str_contains($hook, 'jvb')) { return; } wp_enqueue_style( 'jvb-dash', ); wp_enqueue_script( 'jvb-admin-scripts', JVB_URL . 'assets/js/min/integrations.min.js', [], '1.0.0', true ); wp_localize_script( 'jvb-admin-scripts', 'jvbSettings', [ 'api' => rest_url('jvb/v1/'), 'currentUser' => get_current_user_id(), 'nonce' => wp_create_nonce('wp_rest'), ] ); } /** * Render the main integrations page */ public function renderPage(): void { ?>
' . esc_html($message) . '
'; } if (isset($_GET['error'])) { $message = sanitize_text_field($_GET['error']); echo '' . esc_html($message) . '