PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Infrastructure / WP / WPMenu / Submenu.php
ameliabooking / src / Infrastructure / WP / WPMenu Last commit date
Submenu.php 1 year ago SubmenuPageHandler.php 1 year ago
Submenu.php
121 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\WP\WPMenu;
4
5 /**
6 * Class Submenu
7 *
8 * @package AmeliaBooking\Infrastructure\WPMenu
9 */
10 class Submenu
11 {
12
13 /** @var SubmenuPageHandler $submenuHandler */
14 private $submenuHandler;
15
16 /** @var array $menu */
17 private $menu;
18
19 /**
20 * Submenu constructor.
21 *
22 * @param SubmenuPageHandler $submenuHandler
23 * @param array $menu
24 */
25 public function __construct($submenuHandler, $menu)
26 {
27 $this->submenuHandler = $submenuHandler;
28
29 $this->menu = $menu;
30 }
31
32 /**
33 * Add options in WP menu
34 */
35 public function addOptionsPages()
36 {
37 add_menu_page(
38 'Amelia Booking',
39 'Amelia',
40 'amelia_read_menu',
41 'amelia',
42 '',
43 AMELIA_URL . 'public/img/amelia-logo-admin-icon.svg'
44 );
45
46 $isLite = false;
47
48 foreach ($this->menu as $menu) {
49 if ($menu['menuSlug'] === 'wpamelia-lite-vs-premium') {
50 $isLite = true;
51 }
52 }
53
54 foreach ($this->menu as $menu) {
55 $this->handleMenuItem($menu, $isLite);
56 }
57
58 remove_submenu_page('amelia', 'amelia');
59 }
60
61 /**
62 * @param array $menu
63 * @param bool $isLite
64 */
65 public function handleMenuItem($menu, $isLite)
66 {
67 if ($menu['menuSlug'] === 'wpamelia-whats-new') {
68 $menu['menuTitle'] = (!$isLite ? '<span style="color: #FF8C00">' : '') . $menu['menuTitle'] . (!$isLite ? '</span>' : '');
69 }
70
71 if ($menu['menuSlug'] === 'wpamelia-lite-vs-premium') {
72 $menu['menuTitle'] = '<span style="color: #ff8c00;font-weight: 500;display: inline-block;margin-top: 2px;">'
73 . $menu['menuTitle'] . '</span>
74 <span class="dashicons dashicons-star-filled" style="color: #ff8c00;margin-left: 5px;"></span>';
75 }
76
77 if ($menu['menuSlug'] === 'wpamelia-locations') {
78 $menu['menuTitle'] = ($isLite ? '<span style="display: inline-block;margin-top: 2px;color:inherit;">' : '')
79 . $menu['menuTitle'] . ($isLite ? '</span><span class="dashicons dashicons-star-filled" style="color: #ff8c00;margin-left: 5px;"></span>' : '');
80 }
81
82 if ($menu['menuSlug'] === 'wpamelia-cf') {
83 $menu['menuTitle'] = ($isLite ? '<span style="display: inline-block;margin-top: 2px;color:inherit;">' : '')
84 . $menu['menuTitle'] . ($isLite ? '</span><span class="dashicons dashicons-star-filled" style="color: #ff8c00;margin-left: 5px;"></span>' : '');
85 }
86
87 $this->addSubmenuPage(
88 $menu['parentSlug'],
89 $menu['pageTitle'],
90 $menu['menuTitle'],
91 $menu['capability'],
92 $menu['menuSlug'],
93 function () use ($menu) {
94 $this->submenuHandler->render($menu['menuSlug']);
95 }
96 );
97 }
98
99 /**
100 * @noinspection MoreThanThreeArgumentsInspection
101 *
102 * @param $parentSlug
103 * @param $pageTitle
104 * @param $menuTitle
105 * @param $capability
106 * @param $menuSlug
107 * @param string $function
108 */
109 private function addSubmenuPage($parentSlug, $pageTitle, $menuTitle, $capability, $menuSlug, $function = '')
110 {
111 add_submenu_page(
112 $parentSlug,
113 $pageTitle,
114 $menuTitle,
115 $capability,
116 $menuSlug,
117 $function
118 );
119 }
120 }
121