[ 'https://ps.w.org/ar-viewer/assets/icon-256x256.gif', 'https://ps.w.org/ar-viewer/assets/icon-128x128.gif', ], ]; // Return custom icons if available, otherwise use default WordPress.org URLs if (isset($custom_icons[$plugin_slug_clean])) { return $custom_icons[$plugin_slug_clean]; } return [ "https://ps.w.org/{$plugin_slug_clean}/assets/icon-256x256.png", // Large PNG "https://ps.w.org/{$plugin_slug_clean}/assets/icon-128x128.png", // Medium PNG ]; } } // Define plugin slugs $plugin_slugs = array( 'bdthemes-element-pack-lite', 'bdthemes-prime-slider-lite/bdthemes-prime-slider.php', 'ultimate-post-kit', 'ultimate-store-kit', 'zoloblocks', 'pixel-gallery', 'live-copy-paste', 'spin-wheel', 'ai-image', 'dark-reader', 'ar-viewer', 'smart-admin-assistant', 'website-accessibility', ); // Get enhanced plugin data using the remote data handler $upk_plugins = Remote_Data_Handler::get_remote_plugins(); // Check if we have cached data $has_cached_data = !empty($upk_plugins); // If no cached data, don't fetch immediately - let JavaScript handle it if (!$has_cached_data) { $upk_plugins = []; // Empty array for initial load } ?>

$config) { $dir = (strpos($key, '/') !== false) ? dirname($key) : $key; $recommended_by_slug[ $dir ] = !empty($config['recommended']); } foreach ($upk_plugins as $slug_key => $plugin) : // Skip own plugin (Ultimate Post Kit) when printing only; data still includes it for other plugins if ($slug_key === 'ultimate-post-kit' ) continue; // Use enhanced status if available, otherwise fall back to old method $plugin_status = $plugin['status'] ?? 'unknown'; if ($plugin_status === 'unknown') { // Fallback to old method for compatibility $is_active = is_plugin_active($plugin['slug']); } else { // Use enhanced status $is_active = ($plugin_status === 'active'); } $plugin_recommended = !empty($recommended_by_slug[ $slug_key ]); $is_recommended = $plugin_recommended && !$is_active; ?>