PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 5.2.9
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v5.2.9
6.2.14 6.2.13 6.2.12 6.2.10 6.2.11 6.2.9 6.2.8 6.2.7 6.2.6 6.2.5 6.2.4 6.2.3 6.2.2 3.6.22 3.6.31 3.6.40 3.6.41 3.6.42 3.6.50 3.6.51 3.6.60 3.6.61 3.6.62 3.6.64 3.6.65 All 196 releases
fluentform / app / Modules / Registerer / AdminBar.php

AdminBar.php in Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder 5.2.9, at app/Modules/Registerer/AdminBar.php

199 lines 7.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentForm\App\Modules\Registerer;
4
5 use FluentForm\App\Modules\Acl\Acl;
6 use FluentForm\App\Services\Manager\FormManagerService;
7 use FluentForm\Framework\Helpers\ArrayHelper;
8
9 class AdminBar
10 {
11
12 public function register()
13 {
14 if (!self::isDisabled()) {
15 add_action('admin_bar_menu', [$this, 'addMenuBar'], 99);
16 }
17 }
18
19 public static function isDisabled()
20 {
21 $settings = get_option('_fluentform_global_form_settings');
22
23 if(!$settings || is_multisite()) {
24 return true;
25 }
26
27 return 'no' == ArrayHelper::get($settings, 'misc.admin_top_nav_status');
28 }
29
30 public function addMenuBar($wpAdminBar)
31 {
32 $items = $this->getMenuItems();
33 if(empty($items)){
34 return;
35 }
36
37 foreach ($items as $itemKey => $item) {
38 $arr = [
39 'id' => $itemKey == 'fluent_form' ? $itemKey : sanitize_title($itemKey),
40 'parent' => $itemKey != 'fluent_form' ? 'fluent_form' : '',
41 'title' => ArrayHelper::get($item, 'title'),
42 'href' => ArrayHelper::get($item, 'url'),
43 ];
44 if(ArrayHelper::get($item,'meta')){
45 $arr['meta'] = [
46 'target' => '_blank',
47 'rel' => 'noopener noreferrer',
48 ];
49 }
50 $wpAdminBar->add_menu(
51 $arr
52 );
53 do_action("fluentform/admin_nav_menu_{$itemKey}");
54 }
55 }
56
57
58 private function getMenuItems()
59 {
60 $dashBoardCapability = 'fluentform_dashboard_access';
61 $dashBoardCapability = apply_filters_deprecated(
62 'fluentform_dashboard_capability',
63 [
64 $dashBoardCapability
65 ],
66 FLUENTFORM_FRAMEWORK_UPGRADE,
67 'fluentform/dashboard_capability',
68 'Use fluentform/dashboard_capability instead of fluentform_dashboard_capability.'
69 );
70
71 $dashBoardCapability = apply_filters(
72 'fluentform/dashboard_capability',
73 $dashBoardCapability
74 );
75
76 $settingManager = 'fluentform_settings_manager';
77 $settingManager = apply_filters_deprecated(
78 'fluentform_settings_capability',
79 [
80 $settingManager
81 ],
82 FLUENTFORM_FRAMEWORK_UPGRADE,
83 'fluentform/settings_capability',
84 'Use fluentform/settings_capability instead of fluentform_settings_capability.'
85 );
86
87 $settingsCapability = apply_filters(
88 'fluentform/settings_capability',
89 $settingManager
90 );
91
92 $fromRole = $currentUserCapability = false;
93 if (!current_user_can($dashBoardCapability) && !current_user_can($settingsCapability)) {
94 $currentUserCapability = Acl::getCurrentUserCapability();
95 if (!$currentUserCapability) {
96 return;
97 } else {
98 $fromRole = true;
99 $dashBoardCapability = $settingsCapability = $currentUserCapability;
100 }
101 }
102
103 if (Acl::isSuperMan()) {
104 $fromRole = true;
105 }
106
107 if (defined('FLUENTFORMPRO')) {
108 $title = __('Fluent Forms Pro', 'fluentform');
109 } else {
110 $title = __('Fluent Forms', 'fluentform');
111 }
112
113 $allowForms = FormManagerService::getUserAllowedForms();
114 $hasUnreadSubmissions = wpFluent()->table('fluentform_submissions')
115 ->where('status', 'unread')
116 ->when($allowForms, function ($q) use ($allowForms){
117 return $q->whereIn('form_id', $allowForms);
118 })
119 ->count();
120
121 $entriesDropdownTitle = __('Entries', 'fluentform');
122 if ($hasUnreadSubmissions > 0) {
123 $style = "background: #1A7EFB;color: white;border-radius: 8px;padding: 1px 7px; height: 16px; display: inline-flex; align-items: center;";
124 $title .= ' <span class="ff_unread_count" style="' . $style . '">' . $hasUnreadSubmissions . '</span>';
125 // for dropdown title
126 $style .= 'float:right; margin-top:4px';
127 $entriesDropdownTitle .= ' <span class="ff_unread_count" style="' . $style . '">' . $hasUnreadSubmissions . '</span>';
128 }
129
130 $items = [
131 'fluent_form' => [
132 'title' => $title,
133 'capability' => $currentUserCapability,
134 'url' => admin_url('admin.php?page=fluent_forms')
135 ],
136 'all_forms' => [
137 'title' => __('Forms', 'fluentform'),
138 'capability' => $currentUserCapability,
139 'url' => admin_url('admin.php?page=fluent_forms')
140 ],
141 ];
142
143 if ($settingsCapability) {
144 $items['new_form'] = [
145 'title' => __('New Form', 'fluentform'),
146 'capability' => $fromRole ? $settingsCapability : 'fluentform_forms_manager',
147 'url' => admin_url('admin.php?page=fluent_forms#add=1'),
148 ];
149
150 $items['fluent_forms_all_entries'] = [
151 'title' => $entriesDropdownTitle,
152 'capability' => $fromRole ? $settingsCapability : 'fluentform_entries_viewer',
153 'url' => admin_url('admin.php?page=fluent_forms_all_entries'),
154 ];
155 $showPaymentEntries = false;
156 $showPaymentEntries = apply_filters_deprecated(
157 'fluentform_show_payment_entries',
158 [
159 $showPaymentEntries
160 ],
161 FLUENTFORM_FRAMEWORK_UPGRADE,
162 'fluentform/show_payment_entries',
163 'Use fluentform/show_payment_entries instead of fluentform_show_payment_entries.'
164 );
165
166 if (apply_filters('fluentform/show_payment_entries', $showPaymentEntries)) {
167 $items ['fluent_forms_payment_entries'] = [
168 'title' => __('Payments', 'fluentform'),
169 'capability' => $fromRole ? $settingsCapability : 'fluentform_view_payments',
170 'url' => admin_url('admin.php?page=fluent_forms_payment_entries')
171 ];
172 }
173
174 }
175 $items['fluent_forms_community'] = [
176 'title' => esc_html__( 'Community', 'wpforms-lite' ),
177 'url' => 'https://www.facebook.com/groups/fluentforms/',
178 'meta' => true
179 ];
180 $items['fluent_forms_doc'] = [
181 'title' => __('Docs','fluentform'),
182 'url' => 'https://wpmanageninja.com/docs/fluent-form/',
183 'meta' => true
184 ];
185 $items['fluent_forms_doc'] = [
186 'title' => __('Docs','fluentform'),
187 'url' => 'https://wpmanageninja.com/docs/fluent-form/',
188 ];
189 $items['fluent_forms_dev_doc'] = [
190 'title' => __('Developer Docs','fluentform'),
191 'url' => 'https://developers.fluentforms.com/',
192 'meta' => true
193 ];
194 return apply_filters('fluentform/admin_menu_bar_items', $items);
195 }
196
197
198 }
199