PluginProbe
Admin and Site Enhancements (ASE) / 8.2.0
Admin and Site Enhancements (ASE) v8.2.0
9.1.1 9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 All 273 releases
admin-site-enhancements / classes / class-hide-admin-notices.php
class-hide-admin-notices.php
328 lines 19.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ASENHA\Classes;
4
5 use WP_Admin_Bar;
6 /**
7 * Class for Hide Admin Notices module
8 *
9 * @since 6.9.5
10 */
11 class Hide_Admin_Notices {
12 /**
13 * Wrapper for admin notices being output on admin screens
14 *
15 * @since 1.2.0
16 */
17 public function admin_notices_wrapper() {
18 $options = get_option( ASENHA_SLUG_U, array() );
19 $hide_for_nonadmins = ( isset( $options['hide_admin_notices_for_nonadmins'] ) ? $options['hide_admin_notices_for_nonadmins'] : false );
20 $minimum_capability = 'manage_options';
21 if ( current_user_can( $minimum_capability ) ) {
22 echo '<div class="asenha-admin-notices-drawer" style="display:none;"><h2>' . __( 'Admin Notices', 'admin-site-enhancements' ) . '</h2></div>';
23 }
24 }
25
26 /**
27 * FOR TESTING: show an admin notice that is visible for all user roles
28 *
29 * @since 8.0.4
30 */
31 public function show_test_admin_notice_for_all_user_roles() {
32 ?>
33 <div class="notice notice-info is-dismissible">
34 <p><?php
35 esc_html_e( "This notice is visible for all user roles.", 'wpturbo' );
36 ?></p>
37 </div>
38 <?php
39 }
40
41 /**
42 * Admin bar menu item for the hidden admin notices
43 *
44 * @link https://developer.wordpress.org/reference/classes/wp_admin_bar/add_menu/
45 * @link https://developer.wordpress.org/reference/classes/wp_admin_bar/add_node/
46 * @since 1.2.0
47 */
48 public function admin_notices_menu( WP_Admin_Bar $wp_admin_bar ) {
49 // Only show Notices menu in wp-admin but when not in Customizer preview
50 if ( is_admin() && !is_customize_preview() ) {
51 $options = get_option( ASENHA_SLUG_U, array() );
52 $hide_for_nonadmins = ( isset( $options['hide_admin_notices_for_nonadmins'] ) ? $options['hide_admin_notices_for_nonadmins'] : false );
53 $hide_menu_for_nonadmins = ( isset( $options['hide_admin_notices_menu_for_nonadmins'] ) ? $options['hide_admin_notices_menu_for_nonadmins'] : false );
54 $minimum_capability = 'manage_options';
55 if ( current_user_can( $minimum_capability ) ) {
56 $wp_admin_bar->add_menu( array(
57 'id' => 'asenha-hide-admin-notices',
58 'parent' => 'top-secondary',
59 'group' => null,
60 'title' => __( 'Notices', 'admin-site-enhancements' ) . '<span class="asenha-admin-notices-counter" style="opacity:0;">0</span>',
61 'meta' => array(
62 'class' => 'asenha-admin-notices-menu hidden',
63 'title' => __( 'Click to view hidden admin notices', 'admin-site-enhancements' ),
64 ),
65 ) );
66 }
67 }
68 }
69
70 /**
71 * Inline CSS for the hiding notices on page load in wp admin pages
72 *
73 * @since 1.2.0
74 */
75 public function admin_notices_menu_inline_css() {
76 $options = get_option( ASENHA_SLUG_U, array() );
77 $hide_for_nonadmins = ( isset( $options['hide_admin_notices_for_nonadmins'] ) ? $options['hide_admin_notices_for_nonadmins'] : false );
78 $minimum_capability = 'manage_options';
79 if ( is_admin() && !is_customize_preview() && current_user_can( $minimum_capability ) ) {
80 // Below we pre-emptively hide notices to avoid having them shown briefly before being moved into the notices panel via JS
81 ?>
82 <style type="text/css">
83 #wpadminbar .asenha-admin-notices-menu .ab-empty-item {
84 cursor: pointer;
85 }
86
87 #wpadminbar .asenha-admin-notices-counter {
88 box-sizing: border-box;
89 margin: 1px 0 -1px 6px ;
90 padding: 2px 6px 3px 5px;
91 min-width: 18px;
92 height: 18px;
93 border-radius: 50%;
94 background-color: #ca4a1f;
95 color: #fff;
96 font-size: 11px;
97 line-height: 1.6;
98 text-align: center;
99 }
100
101 /* #wpbody-content .notice:not(.system-notice,.update-message),
102 #wpbody-content .notice-error,
103 #wpbody-content .error,
104 #wpbody-content .notice-info,
105 #wpbody-content .notice-information,
106 #wpbody-content #message,
107 #wpbody-content .notice-warning:not(.update-message),
108 #wpbody-content .notice-success:not(.update-message),
109 #wpbody-content .notice-updated,
110 #wpbody-content .updated:not(.active, .inactive, .plugin-update-tr),
111 #wpbody-content .update-nag, */
112 #wpbody-content > .wrap > .notice:not(#plugin-activated-successfully,.system-notice,.updated,.hidden,.inline,.wcml-notice,.asenha-media-replacement-notice),
113 #wpbody-content > .wrap > .notice-error,
114 #wpbody-content > .wrap > .error:not(.hidden),
115 #wpbody-content > .wrap > .notice-info,
116 #wpbody-content > .wrap > .notice-information,
117 #wpbody-content > .wrap > #message:not(.updated,.asenha-media-replacement-notice),
118 #wpbody-content > .wrap > .notice-warning:not(.hidden),
119 #wpbody-content > .wrap > .notice-success:not(.updated,#plugin-activated-successfully,.updated,.asenha-media-replacement-notice),
120 #wpbody-content > .wrap > .notice-updated,
121 #wpbody-content > .wrap > .updated:not(.inline),
122 #wpbody-content > .wrap > .update-nag,
123 #wpbody-content > .wrap > div:not(#loco-notices,#loco-content) > .notice:not(.system-notice,.hidden),
124 #wpbody-content > .wrap > div:not(#loco-notices,#loco-content) > .notice-error,
125 #wpbody-content > .wrap > div:not(#loco-notices,#loco-content) > .error:not(.hidden),
126 #wpbody-content > .wrap > div:not(#loco-notices,#loco-content) > .notice-info,
127 #wpbody-content > .wrap > div:not(#loco-notices,#loco-content) > .notice-information,
128 #wpbody-content > .wrap > div > #message,
129 #wpbody-content > .wrap > div:not(#loco-notices,#loco-content) > .notice-warning:not(.hidden),
130 #wpbody-content > .wrap > div:not(#loco-notices,#loco-content) > .notice-success,
131 #wpbody-content > .wrap > div:not(#loco-notices,#loco-content) > .notice-updated,
132 #wpbody-content > .wrap > div:not(#loco-notices,#loco-content) > .updated,
133 #wpbody-content > .wrap > div > .update-nag,
134 #wpbody-content > div > .wrap > .notice:not(.system-notice,.hidden),
135 #wpbody-content > div > .wrap > .notice-error,
136 #wpbody-content > div > .wrap > .error:not(.hidden),
137 #wpbody-content > div > .wrap > .notice-info,
138 #wpbody-content > div > .wrap > .notice-information,
139 #wpbody-content > div > .wrap > #message,
140 #wpbody-content > div > .wrap > .notice-warning:not(.hidden),
141 #wpbody-content > div > .wrap > .notice-success,
142 #wpbody-content > div > .wrap > .notice-updated,
143 #wpbody-content > div > .wrap > .updated:not(.inline),
144 #wpbody-content > div > .wrap > .update-nag,
145 /* e.g. on user deletion screen */
146 #wpbody-content > form > .wrap > .notice:not(.system-notice,.hidden),
147 #wpbody-content > form > .wrap > .notice-error,
148 #wpbody-content > form > .wrap > .error:not(.hidden),
149 #wpbody-content > form > .wrap > .notice-info,
150 #wpbody-content > form > .wrap > .notice-information,
151 #wpbody-content > form > .wrap > #message,
152 #wpbody-content > form > .wrap > .notice-warning:not(.hidden),
153 #wpbody-content > form > .wrap > .notice-success,
154 #wpbody-content > form > .wrap > .notice-updated,
155 #wpbody-content > form > .wrap > .updated:not(.inline),
156 #wpbody-content > form > .wrap > .update-nag,
157 /* WooCommerce */
158 #wpbody-content > .wrap.woocommerce > form > .notice:not(.system-notice,.hidden),
159 #wpbody-content > .wrap.woocommerce > form > .notice-error,
160 #wpbody-content > .wrap.woocommerce > form > .error:not(.hidden),
161 #wpbody-content > .wrap.woocommerce > form > .notice-info,
162 #wpbody-content > .wrap.woocommerce > form > .notice-information,
163 #wpbody-content > .wrap.woocommerce > form > #message,
164 #wpbody-content > .wrap.woocommerce > form > .notice-warning:not(.hidden),
165 #wpbody-content > .wrap.woocommerce > form > .notice-success,
166 #wpbody-content > .wrap.woocommerce > form > .notice-updated,
167 #wpbody-content > .wrap.woocommerce > form > .updated:not(.inline),
168 #wpbody-content > .wrap.woocommerce > form > .update-nag,
169 /* TranslatePress */
170 #wpbody-content > #trp-main-settings > form > .notice:not(.system-notice,.hidden),
171 #wpbody-content > #trp-main-settings > form > .notice-error,
172 #wpbody-content > #trp-main-settings > form > .error:not(.hidden),
173 #wpbody-content > #trp-main-settings > form > .notice-info,
174 #wpbody-content > #trp-main-settings > form > .notice-information,
175 #wpbody-content > #trp-main-settings > form > #message,
176 #wpbody-content > #trp-main-settings > form > .notice-warning:not(.hidden),
177 #wpbody-content > #trp-main-settings > form > .notice-success,
178 #wpbody-content > #trp-main-settings > form > .notice-updated,
179 #wpbody-content > #trp-main-settings > form > .updated:not(.inline),
180 #wpbody-content > #trp-main-settings > form > .update-nag,
181 /* WordFence */
182 #wpbody-content > .wrap > .wf-container-fluid .notice:not(#plugin-activated-successfully,.system-notice,.hidden),
183 #wpbody-content > .wrap > .wf-container-fluid .notice-error,
184 #wpbody-content > .wrap > .wf-container-fluid .error:not(.hidden),
185 #wpbody-content > .wrap > .wf-container-fluid .notice-info,
186 #wpbody-content > .wrap > .wf-container-fluid .notice-information,
187 #wpbody-content > .wrap > .wf-container-fluid #message,
188 #wpbody-content > .wrap > .wf-container-fluid .notice-warning:not(.hidden),
189 #wpbody-content > .wrap > .wf-container-fluid .notice-success:not(#plugin-activated-successfully),
190 #wpbody-content > .wrap > .wf-container-fluid .notice-updated,
191 #wpbody-content > .wrap > .wf-container-fluid .updated:not(.inline),
192 #wpbody-content > .wrap > .wf-container-fluid .update-nag,
193 /* WP All Import */
194 #wpbody-content > .wrap .wpallimport-wrapper .notice:not(#plugin-activated-successfully,.system-notice,.hidden),
195 #wpbody-content > .wrap .wpallimport-wrapper .notice-error,
196 #wpbody-content > .wrap .wpallimport-wrapper .error:not(.hidden),
197 #wpbody-content > .wrap .wpallimport-wrapper .notice-info,
198 #wpbody-content > .wrap .wpallimport-wrapper .notice-information,
199 #wpbody-content > .wrap .wpallimport-wrapper #message,
200 #wpbody-content > .wrap .wpallimport-wrapper .notice-warning:not(.hidden),
201 #wpbody-content > .wrap .wpallimport-wrapper .notice-success:not(#plugin-activated-successfully),
202 #wpbody-content > .wrap .wpallimport-wrapper .notice-updated,
203 #wpbody-content > .wrap .wpallimport-wrapper .updated:not(.inline),
204 #wpbody-content > .wrap .wpallimport-wrapper .update-nag,
205 /* WP All Export */
206 #wpbody-content > .wrap .wpallexport-wrapper .notice:not(#plugin-activated-successfully,.system-notice,.hidden),
207 #wpbody-content > .wrap .wpallexport-wrapper .notice-error,
208 #wpbody-content > .wrap .wpallexport-wrapper .error:not(.hidden),
209 #wpbody-content > .wrap .wpallexport-wrapper .notice-info,
210 #wpbody-content > .wrap .wpallexport-wrapper .notice-information,
211 #wpbody-content > .wrap .wpallexport-wrapper #message,
212 #wpbody-content > .wrap .wpallexport-wrapper .notice-warning:not(.hidden),
213 #wpbody-content > .wrap .wpallexport-wrapper .notice-success:not(#plugin-activated-successfully),
214 #wpbody-content > .wrap .wpallexport-wrapper .notice-updated,
215 #wpbody-content > .wrap .wpallexport-wrapper .updated:not(.inline),
216 #wpbody-content > .wrap .wpallexport-wrapper .update-nag,
217 /* WS Form */
218 #wpbody-content > #wsf-layout-editor > #poststuff > .notice:not(#plugin-activated-successfully,.system-notice,.hidden),
219 #wpbody-content > #wsf-layout-editor > #poststuff > .notice-error,
220 #wpbody-content > #wsf-layout-editor > #poststuff > .error:not(.hidden),
221 #wpbody-content > #wsf-layout-editor > #poststuff > .notice-info,
222 #wpbody-content > #wsf-layout-editor > #poststuff > .notice-information,
223 #wpbody-content > #wsf-layout-editor > #poststuff > #message,
224 #wpbody-content > #wsf-layout-editor > #poststuff > .notice-warning:not(.hidden),
225 #wpbody-content > #wsf-layout-editor > #poststuff > .notice-success:not(#plugin-activated-successfully),
226 #wpbody-content > #wsf-layout-editor > #poststuff > .notice-updated,
227 #wpbody-content > #wsf-layout-editor > #poststuff > .updated:not(.inline),
228 #wpbody-content > #wsf-layout-editor > #poststuff > .update-nag,
229 /* Pods */
230 #wpbody-content .pods-submittable-fields > .notice:not(#plugin-activated-successfully,.system-notice,.hidden),
231 #wpbody-content .pods-submittable-fields > .notice-error,
232 #wpbody-content .pods-submittable-fields > .error:not(.hidden),
233 #wpbody-content .pods-submittable-fields > .notice-info,
234 #wpbody-content .pods-submittable-fields > .notice-information,
235 #wpbody-content .pods-submittable-fields > #message,
236 #wpbody-content .pods-submittable-fields > .notice-warning:not(.hidden),
237 #wpbody-content .pods-submittable-fields > .notice-success:not(#plugin-activated-successfully),
238 #wpbody-content .pods-submittable-fields > .notice-updated,
239 #wpbody-content .pods-submittable-fields > .updated:not(.inline),
240 #wpbody-content .pods-submittable-fields > .update-nag,
241 /* Meta Box Lite */
242 .mb-main > .notice:not(#plugin-activated-successfully,.system-notice,.hidden),
243 .mb-main > .notice-error,
244 .mb-main > .error:not(.hidden),
245 .mb-main > .notice-info,
246 .mb-main > .notice-information,
247 .mb-main > #message,
248 .mb-main > .notice-warning:not(.hidden),
249 .mb-main > .notice-success:not(#plugin-activated-successfully),
250 .mb-main > .notice-updated,
251 .mb-main > .updated:not(.inline),
252 .mb-main > .update-nag,
253 /* Meta Box AIO */
254 .mb-header__left > .notice:not(#plugin-activated-successfully,.system-notice,.hidden),
255 .mb-header__left > .notice-error,
256 .mb-header__left > .error:not(.hidden),
257 .mb-header__left > .notice-info,
258 .mb-header__left > .notice-information,
259 .mb-header__left > #message,
260 .mb-header__left > .notice-warning:not(.hidden),
261 .mb-header__left > .notice-success:not(#plugin-activated-successfully),
262 .mb-header__left > .notice-updated,
263 .mb-header__left > .updated:not(.inline),
264 .mb-header__left > .update-nag,
265 /* Funnel Builder for WordPress by FunnelKit */
266 #wpbody-content > .bwfan_header > .notice:not(.system-notice,.hidden),
267 #wpbody-content > .bwfan_header > .notice-error,
268 #wpbody-content > .bwfan_header > .error:not(.hidden),
269 #wpbody-content > .bwfan_header > .notice-info,
270 #wpbody-content > .bwfan_header > .notice-information,
271 #wpbody-content > .bwfan_header > #message,
272 #wpbody-content > .bwfan_header > .notice-warning:not(.hidden),
273 #wpbody-content > .bwfan_header > .notice-success,
274 #wpbody-content > .bwfan_header > .notice-updated,
275 #wpbody-content > .bwfan_header > .updated:not(.inline),
276 #wpbody-content > .bwfan_header > .update-nag,
277 #wpbody-content > .notice:not(.otgs-notice,.wcml-notice),
278 #wpbody-content > .error,
279 #wpbody-content > .updated:not(.inline),
280 #wpbody-content > .update-nag,
281 #wpbody-content > .jp-connection-banner,
282 #wpbody-content > .jitm-banner,
283 #wpbody-content > .jetpack-jitm-message,
284 #wpbody-content > .ngg_admin_notice,
285 #wpbody-content > .imagify-welcome,
286 #wpbody-content #wordfenceAutoUpdateChoice,
287 #wpbody-content #easy-updates-manager-dashnotice,
288 #wpbody-content > .wrap.gblocks-dashboard-wrap .notice:not(.system-notice,.hidden),
289 #wpbody-content > .wrap.gblocks-dashboard-wrap .notice-error,
290 #wpbody-content > .wrap.gblocks-dashboard-wrap .error:not(.hidden),
291 #wpbody-content > .wrap.gblocks-dashboard-wrap .notice-info,
292 #wpbody-content > .wrap.gblocks-dashboard-wrap .notice-information,
293 #wpbody-content > .wrap.gblocks-dashboard-wrap #message,
294 #wpbody-content > .wrap.gblocks-dashboard-wrap .notice-warning:not(.hidden),
295 #wpbody-content > .wrap.gblocks-dashboard-wrap .notice-success,
296 #wpbody-content > .wrap.gblocks-dashboard-wrap .notice-updated,
297 #wpbody-content > .wrap.gblocks-dashboard-wrap .updated:not(.inline),
298 #wpbody-content > .wrap.gblocks-dashboard-wrap .update-nag,
299 /* WPML */
300 #wpbody-content > .otgs-notice,
301 /* WooCommerce Stock Sync */
302 #wpbody-content > .wrap > .ssgs-influencer-banner,
303 #wpbody-content > .wrap > .ssgs-upgrade-banner,
304 #wpbody-content > .wrap > .ssgs-rating-banner,
305 /* Shortpixel */
306 #wpbody-content > .shortpixel-notice,
307 /* Dokan */
308 #wpbody-content > .wrap .dokan-dashboard .notice:not(.system-notice,.hidden,.wcml-notice),
309 #wpbody-content > .wrap .dokan-dashboard .notice-error,
310 #wpbody-content > .wrap .dokan-dashboard .error:not(.hidden),
311 #wpbody-content > .wrap .dokan-dashboard .notice-info,
312 #wpbody-content > .wrap .dokan-dashboard .notice-information,
313 #wpbody-content > .wrap .dokan-dashboard #message,
314 #wpbody-content > .wrap .dokan-dashboard .notice-warning:not(.hidden),
315 #wpbody-content > .wrap .dokan-dashboard .notice-success:not(#plugin-activated-successfully),
316 #wpbody-content > .wrap .dokan-dashboard .notice-updated,
317 #wpbody-content > .wrap .dokan-dashboard .updated:not(.inline),
318 #wpbody-content > .wrap .dokan-dashboard .update-nag {
319 position: absolute !important;
320 visibility: hidden !important;
321 }
322 </style>
323 <?php
324 }
325 }
326
327 }
328