web-dev-qa-db-fra.com

Comment désactiver une page spécifique pour un utilisateur spécifique

Par exemple, j'ai cette page

https://www.website.com/courses/wp-admin/admin.php?page=wpProQuiz&action=delete&id=1

Je veux désactiver cette page pour le nom d'utilisateur remo.

Comment puis-je faire ceci?

1
Pravin Nath

Il existe une variable globale contenant la page en cours dans la zone d'administration, appelée $pagenow. Vous pouvez l'utiliser pour détecter où se trouve l'utilisateur.

Dans votre cas, vous êtes sur admin.php et 3 paramètres sont définis dans l'URL, page, delete et id. Alors:

if( 
    in_array( $pagenow, array('admin.php') ) &&
    ( $_GET['page'] == 'wpProQuiz' && $_GET['action'] == 'delete' && $_GET['id'] == '1' ) 
) {
    // Now check the current user
    $user = wp_get_current_user();
    if ( $user->user_login == 'remo' ) {
        wp_safe_redirect( admin_url() );
        exit();
    }
}

Cela redirigera l'utilisateur vers son tableau de bord. Ce n'est pas que vous n'avez pas besoin de vérifier le mot de passe, car le nom d'utilisateur est unique.

1
Jack Johansson