✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como verificar se um ou mais usuários estão logados usando Cookie no WordPress?

20

O WordPress fornece uma API is_user_logged_in() para verificar se algum usuário está logado, mas infelizmente, ela não está disponível diretamente quando você escreve plugins, por exemplo, os plugins são carregados antes do pluggable.php que é onde is_user_logged_in() é definido.

Da implementação de is_user_logged_in() você pode ver que é:

function is_user_logged_in() {
    $user = wp_get_current_user(); 
    return $user->exists();
}

Assim, podemos alterar a função para verificar se um usuário especificado fez login.

function is_username_logged_in($username) {
    $user = wp_get_current_user(); 
    return $user->user_login == $username;  
}

No entanto, a função principal wp_get_current_user ainda está definida em pluggable.php. O seguinte implementa uma função que recebe uma matriz de nomes de usuário permitidos e retorna true se algum nome de usuário de permissão estiver conectado.

function allowedUsersLoggedIn($allowd_users) {
    if (count($_COOKIE)) {
        foreach ($_COOKIE as $key => $val) {
            if (substr($key, 0, 19) === "wordpress_logged_in") {
                if (preg_match('/^('. implode('|', $allowed_users). ')/', $val, $matches)) {
                    return true;
                }
            }
        }
    }
    return false;
}

Você pode usar esta função com segurança em qualquer lugar, mesmo sem o ambiente WP. O uso da amostra seria:

if (allowedUsersLoggedIn(array("helloacm", "steakovercooked")) {
  // code that only allowed users run
}

O princípio desta função é verificar o COOKIE para a string especificada quando os usuários permitidos estiverem logados.

Fonte de gravação: helloacm.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação