• Vladimir

    (@vladimir-slonska)


    Bonjour,

    La fonction pour désactiver la maintenance en fonction du rôle du visiteur ne fonctionne pas chez moi, car mes comptes ont plusieurs rôles (un rôle de WordPress standard et un rôle spécifique au plugin bbpress).

    Du coup, dans la fonction wpm_check_active() de classes/wp-maintenance.php, l’égalité if( $limitrole == $user_role ) ligne 629 n’est jamais vérifiée puisque juste au-dessus on a $user_role = implode(', ', $user_info->roles);

    Dans mon cas, cela donne if( editor == editor, bbp_participant ) ce qui donc n’est jamais égal.

    En supprimant le implode et en remplaçant :

    if( is_user_logged_in() ) {
                        $user_id = get_current_user_id(); 
                        $user_info = get_userdata($user_id);
                        $user_role = implode(', ', $user_info->roles);
                        if( $limitrole == $user_role ) {
                            $statusActive = 0;
                        }
                    }

    par

    if( is_user_logged_in() ) {
                        $user_id = get_current_user_id(); 
                        $user_info = get_userdata($user_id);
                        if( in_array($limitrole, $user_info->roles) ) {
                            $statusActive = 0;
                        }
                    }

    Cela fonctionne normalement.

  • The topic ‘Dysfonctionnement rôles autorisés’ is closed to new replies.