2010-01-20 8 views
3

J'essaye actuellement de surcharger la fonction de wp_authenticate de Wordpress (sans modifier les dossiers de noyau, principalement pluggable.php), mais je ne suis pas sûr si j'y vais la manière correcte. Il y a deux grandes références (voir ci-dessous), mais elles n'indiquent pas explicitement ce qu'il faut faire pour empêcher la connexion à condition que certains critères soient remplis.Wordpress Authentifier le filtre

En bref, j'essaie d'empêcher les utilisateurs enregistrés qui n'ont pas activé leur compte. J'ai déjà implémenté la création d'un utilisateur avec un identifiant unique md5 dans la table usermeta (attaché à son identifiant utilisateur). Essentiellement, j'essaie de vérifier la valeur "activation_key" dans la table usermeta lors de la connexion, si une valeur existe, je veux empêcher la connexion.

Le filtre d'authentification semble être exactement ce dont j'ai besoin, mais après le modifier et de le placer dans mon fichier functions.php, il ne semble pas fonctionner Connexion se produit d'habitude

Références:.

How do I hook into the Wordpress login system to stop some users programmatically?

http://willnorris.com/2009/03/authentication-in-wordpress-28

+0

Ok bien que je pense que je suis plus proche, mais je ne peux pas sembler supprimer les filtres d'authentification par défaut. Des pensées? – st4ck0v3rfl0w

Répondre

2

J'ai effectivement trouvé un travail. À l'aide d'un formulaire personnalisé, vous pouvez vous connecter à Wordpress à l'aide de la fonction wp_signon.

var $creds = array(); 
$creds['user_login'] = 'example'; 
$creds['user_password'] = 'plaintextpw'; 
$creds['remember'] = true; 
//check if user has an activation key in the usermeta table 
$user = get_userdatabylogin($creds['user_login']); 
if(get_usermeta($user->ID,'activation_key')) { 
} else { 
$procLogin = wp_signon($creds, false); 
if (is_wp_error($procLogin)) { 
echo $user->get_error_message(); 
} 
echo 'success!'; 
} 

espoir que cela aide quelqu'un là

Questions connexes