Ayanize
Ayanize

Reputation: 495

How to redirect admin url with page parameter

I wish to redirect some admin URLs with page parameters (like theme or plugin options pages) for non-admins. I tried with

function admin_pages_redirect() {
global $pagenow;
$admin_pages = array(
'admin.php?page=WP-Optimize',
'admin.php?page=ultimatemember',
);
if(in_array($pagenow, $admin_pages)){
wp_redirect( admin_url() ); 
exit;
}
}
if(!current_user_can('update_core')){
add_action('admin_init', 'admin_pages_redirect');
}

But those options pages are not redirecting. Any help will be appreciative.

Thanks

Upvotes: 0

Views: 1153

Answers (1)

You should use :

function admin_pages_redirect()
{
$current_url = add_query_arg(NULL, NULL);
$parts = explode('/', $current_url);
$last = end($parts);
$admin_pages = array(
    'admin.php?page=WP-Optimize',
    'admin.php?page=ultimatemember',
);
if (in_array($last, $admin_pages))
    {
    wp_redirect(admin_url());
    exit;
    }
}
if (!current_user_can('update_core'))
{
add_action('admin_init', 'admin_pages_redirect');
}

Upvotes: 1

Related Questions