PluginProbe
ReviewX – Multi-Criteria Reviews for WooCommerce with Google Reviews & Schema / trunk
ReviewX – Multi-Criteria Reviews for WooCommerce with Google Reviews & Schema vtrunk
2.5.1 2.5.0 2.4.1 2.4.0 2.3.11 2.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 All 143 releases
reviewx / bootstrap / menu.php

menu.php in ReviewX – Multi-Criteria Reviews for WooCommerce with Google Reviews & Schema trunk, at bootstrap/menu.php

82 lines 4.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ReviewX;
4
5 \defined('ABSPATH') || exit;
6 use ReviewX\WPDrill\Plugin;
7 use ReviewX\WPDrill\Facades\Menu;
8 use ReviewX\Services\CacheServices;
9 use ReviewX\Utilities\Auth\Client;
10 return function (Plugin $plugin) {
11 $cacheServices = new CacheServices();
12 $pendingReviewCount = 0;
13 $shouldRenderPendingBadge = Client::has() && $cacheServices->currentUserCanAccessReviewx();
14 if ($shouldRenderPendingBadge) {
15 $pendingReviewCount = (int) ($cacheServices->pendingReviewNoticeSummary()['pending'] ?? 0);
16 }
17 if (Client::has()) {
18 Menu::group(\__("ReviewX", "reviewx"), \ReviewX\Handlers\DashboardMenuHandler::class, 'manage_options', function (\ReviewX\WPDrill\Menus\MenuBuilder $menu) {
19 if (!\current_user_can('manage_options')) {
20 return;
21 }
22 $menu->currentGroup()->position(2)->icon(\REVIEWX_URL . 'resources/assets/logo/ReviewX_dash_icon_white.png');
23 $menu->add(\__("Dashboard", "reviewx"), \ReviewX\Handlers\DashboardMenuHandler::class, 'manage_options')->icon('dashicons-smiley')->slug('reviewx');
24 $menu->add(\__("Reviews", "reviewx"), \ReviewX\Handlers\AllReviewsHandler::class, 'manage_options')->icon('dashicons-smiley');
25 $menu->add(\__("Review Reminder", "reviewx"), \ReviewX\Handlers\ReviewReminderEmailHandler::class, 'manage_options')->icon('dashicons-smiley');
26 $menu->add(\__("Discount for Review", "reviewx"), \ReviewX\Handlers\DiscountHandler::class, 'manage_options')->icon('dashicons-smiley');
27 $menu->add(\__("Google Review", "reviewx"), \ReviewX\Handlers\GoogleReviewsHandler::class, 'manage_options')->icon('dashicons-smiley');
28 $menu->add(\__("Import / Export", "reviewx"), \ReviewX\Handlers\ImportExpotHandler::class, 'manage_options')->icon('dashicons-smiley')->slug('reviewx_import_export');
29 $menu->add(\__("Custom Post Reviews", "reviewx"), \ReviewX\Handlers\CptReviewsHandler::class, 'manage_options')->icon('dashicons-smiley')->slug('reviewx_cpt_review');
30 $menu->add(\__("Settings", "reviewx"), \ReviewX\Handlers\GeneralSettingHandler::class, 'manage_options')->icon('dashicons-smiley')->slug('reviewx_settings');
31 $menu->add(\__("Tools", "reviewx"), \ReviewX\Handlers\ToolsHandler::class, 'manage_options')->icon('dashicons-smiley')->slug('reviewx_tools');
32 });
33 }
34 if (!Client::has()) {
35 Menu::group(\__("ReviewX", "reviewx"), \ReviewX\Handlers\OnboardMenuHandler::class, 'manage_options', function (\ReviewX\WPDrill\Menus\MenuBuilder $menu) {
36 $menu->currentGroup()->position(2)->icon(\REVIEWX_URL . 'resources/assets/logo/ReviewX_dash_icon_white.png');
37 });
38 }
39 if ($shouldRenderPendingBadge) {
40 \add_action('admin_head', static function () {
41 echo '<style>
42 #toplevel_page_reviewx .reviewx-admin-notice-badge,
43 #toplevel_page_reviewx .reviewx-admin-notice-badge .pending-count {
44 min-width: 18px;
45 line-height: 18px;
46 }
47 #toplevel_page_reviewx .reviewx-admin-notice-badge {
48 margin-inline-start: 6px;
49 background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
50 box-shadow: 0 6px 14px rgba(37, 99, 235, 0.18);
51 }
52 #toplevel_page_reviewx .reviewx-admin-notice-badge[hidden] {
53 display: none !important;
54 }
55 </style>';
56 });
57 \add_action('admin_menu', static function () use($pendingReviewCount) {
58 global $menu, $submenu;
59 $badge = \sprintf(' <span class="awaiting-mod reviewx-admin-notice-badge"%s><span class="pending-count">%d</span></span>', $pendingReviewCount > 0 ? '' : ' hidden', (int) $pendingReviewCount);
60 if (\is_array($menu)) {
61 foreach ($menu as &$menuItem) {
62 if (($menuItem[2] ?? '') === 'reviewx') {
63 $menuItem[0] .= $badge;
64 break;
65 }
66 }
67 unset($menuItem);
68 }
69 if (isset($submenu['reviewx']) && \is_array($submenu['reviewx'])) {
70 foreach ($submenu['reviewx'] as &$submenuItem) {
71 $submenuTitle = \wp_strip_all_tags((string) ($submenuItem[0] ?? ''));
72 if ($submenuTitle === \__('Reviews', 'reviewx')) {
73 $submenuItem[0] .= $badge;
74 break;
75 }
76 }
77 unset($submenuItem);
78 }
79 }, 999);
80 }
81 };
82