@@ -75,7 +75,7 @@ protected function adminMenu()
7575 'options-general.php ' ,
7676 \esc_html__ ('WP REST API Cache ' , 'wp-rest-api-cache ' ),
7777 \esc_html__ ('REST API Cache ' , 'wp-rest-api-cache ' ),
78- 'manage_options ' ,
78+ 'delete_users ' ,
7979 self ::MENU_SLUG ,
8080 function () {
8181 $ this ->renderPage ();
@@ -90,12 +90,14 @@ function () {
9090 */
9191 protected function adminBarMenu (WP_Admin_Bar $ wp_admin_bar )
9292 {
93- $ args = [
93+ if (! is_user_logged_in () || ! current_user_can ('delete_users ' ) || ! is_admin_bar_showing ()) {
94+ return ;
95+ }
96+
97+ $ wp_admin_bar ->add_node ([
9498 'id ' => WpRestApiCache::ID ,
9599 'title ' => \esc_html__ ('REST API Cache ' , 'wp-rest-api-cache ' ),
96- ];
97-
98- $ wp_admin_bar ->add_node ($ args );
100+ ]);
99101 $ wp_admin_bar ->add_menu ([
100102 'parent ' => WpRestApiCache::ID ,
101103 'id ' => self ::MENU_ID ,
@@ -111,16 +113,12 @@ protected function adminAction()
111113 {
112114 $ this ->requestCallback ();
113115
114- $ url = \wp_nonce_url (
115- \add_query_arg (
116- [self ::NOTICE => 1 ],
117- \remove_query_arg (
118- [RestDispatch::QUERY_CACHE_DELETE , RestDispatch::QUERY_CACHE_REFRESH ],
119- \wp_get_referer ()
120- )
121- ),
122- self ::NONCE_ACTION ,
123- self ::NONCE_NAME
116+ $ url = \add_query_arg (
117+ [self ::NOTICE => 1 ],
118+ \remove_query_arg (
119+ [RestDispatch::QUERY_CACHE_DELETE , RestDispatch::QUERY_CACHE_REFRESH ],
120+ \wp_get_referer ()
121+ )
124122 );
125123 \wp_safe_redirect ($ url );
126124 exit ;
@@ -131,9 +129,7 @@ protected function adminAction()
131129 */
132130 protected function adminNotices ()
133131 {
134- if (! empty ($ _REQUEST [self ::NONCE_NAME ]) &&
135- \wp_verify_nonce ($ _REQUEST [self ::NONCE_NAME ], self ::NONCE_ACTION ) &&
136- ! empty ($ _GET [self ::NOTICE ]) &&
132+ if (! empty ($ _GET [self ::NOTICE ]) &&
137133 filter_var_int ($ _GET [self ::NOTICE ]) === 1
138134 ) {
139135 $ message = \esc_html__ ('The cache has been successfully cleared. ' , 'wp-rest-api-cache ' );
0 commit comments