__('TOCCraft – Modern Table of Contents', 'adbear-roles-admin-access-manager'), 'description' => __('SEO-friendly table of contents for WordPress posts and pages. Auto-generate accessible TOC blocks that improve navigation and on-page structure.', 'adbear-roles-admin-access-manager'), 'url' => 'https://wordpress.org/plugins/toccraft-modern-table-of-contents/', 'icon' => 'dashicons-list-view', ], [ 'name' => __('Adbear FAQ Schema Structured Data', 'adbear-roles-admin-access-manager'), 'description' => __('WordPress FAQ schema plugin with JSON-LD structured data. Boost SEO rich results and FAQ visibility in Google search.', 'adbear-roles-admin-access-manager'), 'url' => 'https://wordpress.org/plugins/adbear-faq-schema-structured-data/', 'icon' => 'dashicons-editor-help', ], [ 'name' => __('AdBear Roles and Admin Access Manager', 'adbear-roles-admin-access-manager'), 'description' => __('Manage WordPress roles, admin menus, dashboard widgets, login redirects, ACF access, and wp-login branding by user role.', 'adbear-roles-admin-access-manager'), 'url' => 'https://wordpress.org/plugins/adbear-roles-admin-access-manager/', 'icon' => 'dashicons-shield-alt', ], [ 'name' => __('Adbear Image Cleaner', 'adbear-roles-admin-access-manager'), 'description' => __('Scan your Media Library for unused images, review results safely, and move unneeded files to Trash with CSV export support.', 'adbear-roles-admin-access-manager'), 'url' => 'https://wordpress.org/plugins/adbear-image-cleaner/', 'icon' => 'dashicons-format-image', ], [ 'name' => __('PixelCraft with WebP', 'adbear-roles-admin-access-manager'), 'description' => __('Convert WordPress uploads to WebP automatically. Lightweight image optimization plugin for faster pages and better Core Web Vitals.', 'adbear-roles-admin-access-manager'), 'url' => 'https://wordpress.org/plugins/pixelcraft-webp/', 'icon' => 'dashicons-images-alt2', ], [ 'name' => __('Adbear Random Order IDs for WooCommerce', 'adbear-roles-admin-access-manager'), 'description' => __('WooCommerce custom order number plugin. Replace sequential order IDs with prefixed random numbers — safe display-only formatting.', 'adbear-roles-admin-access-manager'), 'url' => 'https://wordpress.org/plugins/adbear-random-order-ids-for-woocommerce/', 'icon' => 'dashicons-cart', ], [ 'name' => __('ModelVista – 3D Model Viewer for WordPress', 'adbear-roles-admin-access-manager'), 'description' => __('GLB and GLTF 3D model viewer for WordPress. Interactive product viewer shortcode for WooCommerce stores and portfolio sites.', 'adbear-roles-admin-access-manager'), 'url' => 'https://wordpress.org/plugins/modelvista-3d-viewer/', 'icon' => 'dashicons-welcome-view-site', ], ]; } public function enqueue_assets($hook) { if (strpos((string) $hook, self::PAGE_SLUG) === false) { return; } wp_enqueue_style( self::STYLE_HANDLE, plugins_url('../assets/css/our-plugins.css', __FILE__), ['dashicons'], Adbam_Admin_Access::VERSION ); } public function render_page() { if (!current_user_can('manage_options')) { wp_die(esc_html__('You do not have permission to access this page.', 'adbear-roles-admin-access-manager')); } $plugins = self::get_plugins(); $count = count($plugins); ?>