currentUserCanAccessReviewx(); if ($shouldRenderPendingBadge) { $pendingReviewCount = (int) ($cacheServices->pendingReviewNoticeSummary()['pending'] ?? 0); } if (Client::has()) { Menu::group(\__("ReviewX", "reviewx"), \ReviewX\Handlers\DashboardMenuHandler::class, 'manage_options', function (\ReviewX\WPDrill\Menus\MenuBuilder $menu) { if (!\current_user_can('manage_options')) { return; } $menu->currentGroup()->position(2)->icon(\REVIEWX_URL . 'resources/assets/logo/ReviewX_dash_icon_white.png'); $menu->add(\__("Dashboard", "reviewx"), \ReviewX\Handlers\DashboardMenuHandler::class, 'manage_options')->icon('dashicons-smiley')->slug('reviewx'); $menu->add(\__("Reviews", "reviewx"), \ReviewX\Handlers\AllReviewsHandler::class, 'manage_options')->icon('dashicons-smiley'); $menu->add(\__("Review Reminder", "reviewx"), \ReviewX\Handlers\ReviewReminderEmailHandler::class, 'manage_options')->icon('dashicons-smiley'); $menu->add(\__("Discount for Review", "reviewx"), \ReviewX\Handlers\DiscountHandler::class, 'manage_options')->icon('dashicons-smiley'); $menu->add(\__("Google Review", "reviewx"), \ReviewX\Handlers\GoogleReviewsHandler::class, 'manage_options')->icon('dashicons-smiley'); $menu->add(\__("Import / Export", "reviewx"), \ReviewX\Handlers\ImportExpotHandler::class, 'manage_options')->icon('dashicons-smiley')->slug('reviewx_import_export'); $menu->add(\__("Custom Post Reviews", "reviewx"), \ReviewX\Handlers\CptReviewsHandler::class, 'manage_options')->icon('dashicons-smiley')->slug('reviewx_cpt_review'); $menu->add(\__("Settings", "reviewx"), \ReviewX\Handlers\GeneralSettingHandler::class, 'manage_options')->icon('dashicons-smiley')->slug('reviewx_settings'); $menu->add(\__("Tools", "reviewx"), \ReviewX\Handlers\ToolsHandler::class, 'manage_options')->icon('dashicons-smiley')->slug('reviewx_tools'); }); } if (!Client::has()) { Menu::group(\__("ReviewX", "reviewx"), \ReviewX\Handlers\OnboardMenuHandler::class, 'manage_options', function (\ReviewX\WPDrill\Menus\MenuBuilder $menu) { $menu->currentGroup()->position(2)->icon(\REVIEWX_URL . 'resources/assets/logo/ReviewX_dash_icon_white.png'); }); } if ($shouldRenderPendingBadge) { \add_action('admin_head', static function () { echo ''; }); \add_action('admin_menu', static function () use($pendingReviewCount) { global $menu, $submenu; $badge = \sprintf(' %d', $pendingReviewCount > 0 ? '' : ' hidden', (int) $pendingReviewCount); if (\is_array($menu)) { foreach ($menu as &$menuItem) { if (($menuItem[2] ?? '') === 'reviewx') { $menuItem[0] .= $badge; break; } } unset($menuItem); } if (isset($submenu['reviewx']) && \is_array($submenu['reviewx'])) { foreach ($submenu['reviewx'] as &$submenuItem) { $submenuTitle = \wp_strip_all_tags((string) ($submenuItem[0] ?? '')); if ($submenuTitle === \__('Reviews', 'reviewx')) { $submenuItem[0] .= $badge; break; } } unset($submenuItem); } }, 999); } };