J'essaye de me connecter par programme à un utilisateur de wordpress, en utilisant la fonction suivante pour cela.
public function auto_login( $user ) {
$username = $user;
if ( !is_user_logged_in() ) {
$user = get_user_by( 'login', $username );
wp_set_current_user( $user->ID, $user->user_login );
wp_set_auth_cookie( $user->ID );
do_action( 'wp_login', $user->user_login );
}
}
Malheureusement, cela ne semble pas fonctionner. Cette fonction est appelée depuis un shortcode. Serait-ce l'explication? Devrais-je plutôt relier ma fonction à un filtre avant qu'un contenu ne soit généré? Aussi, je voudrais rediriger l'utilisateur nouvellement connecté vers un message spécifique basé sur un paramètre $ _GET, puis-je simplement ajouter une redirection d'en-tête à la fin de la fonction?
Merci d'avance pour votre aide !
Faites ceci sur le hook template_redirect. Vous pouvez utiliser wp_safe_redirect pour rediriger des pages différentes du blog. Je ne peux pas vous donner le code parce que je ne sais pas d'où vous obtenez l'utilisateur $
Vous pouvez essayer cette fonction car elle fonctionne pour moi
function custom_login() {
$creds = array();
$creds['user_login'] = 'example';
$creds['user_password'] = 'plaintextpw';
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) )
echo $user->get_error_message();
}
// run it before the headers and cookies are sent
add_action( 'after_setup_theme', 'custom_login' );
Pour plus de détails s'il vous plaît visitez le site officiel ici