Ce code vérifie si un utilisateur se connecte pour la première fois, c'est-à-dire après l'enregistrement. Je veux le rediriger vers une page personnalisée si c'est le cas. Sinon, redirigez-le vers la page d'accueil ou la page d'administration.Rediriger l'utilisateur après la première connexion dans wordpress?
function mylogin_redirect() {
global $user_ID;
if($user_ID) {
$user_info = get_userdata($user_ID);
// If user_registered date/time is less than 48hrs from now
// Message will show for 48hrs after registration
if (strtotime($user_info->user_registered) > (time() - 172800)) {
header("Location: http://example.com/custompage");
} elseif(current_user_can('manage_options')) {
header("Location: http://example.com/wp-admin/");
} else {
header("Location: http://example.com/");
}
}
}
add_action('wp_head', 'mylogin_redirect');
Mais cela ne fonctionne pas? Je suppose qu'il ne soit pas accroché dans wp_head ... J'ai essayé le suivant à l'aide filtre login_redirect:
function mylogin_redirect($redirect_to, $url_redirect_to = '', $user = null) {
global $user_ID;
if($user_ID) {
$user_info = get_userdata($user_ID);
// If user_registered date/time is less than 48hrs from now
// Message will show for 48hrs after registration
if (strtotime($user_info->user_registered) > (time() - 172800)) {
return get_bloginfo('url') . "/custompage/";
} elseif(current_user_can('manage_options')) {
return admin_url();
} else {
return get_bloginfo('url');
}
}
}
add_filter('login_redirect', 'mylogin_redirect');
Bien qu'il me connecte, il ne me mène nulle part, mais à la place http://example.com/wp-login.php
avec un blanc page.
MISE À JOUR: Ok, je ne sais pas ce qui se passe. En utilisant le crochet de filtre, je peux arriver à la destination prévue seulement après la deuxième connexion. Eh bien pas vraiment deuxième connexion, mais sur le deuxième clic sur le bouton de connexion. Je l'ai fait comme ça: entrer les informations d'identification -> connexion -> (mauvaise page) -> bouton de retour -> entrer les informations d'identification à nouveau -> login -> (page correcte). Bizarre.
Essayé, ne fonctionnait pas. Il me redirige toujours vers ../wp-login.php sans le formulaire. Le problème avec le filtre est que l'analyseur ne pénètre pas dans le bloc 'if'. Parce que si je supprime le bloc 'if' et le remplace par l'instruction' return admin_url() ', cela fonctionne correctement. – Joann
Vous devriez utiliser la variable '$ user' transmise à la fonction, c'est-à-dire' $ user-> ID' à la place du global $ user_ID'. – TheDeadMedic
Cela a fonctionné! Mais wordpress ne semble pas reconnaître ce 'elseif (current_user_can ('manage_options')) {return admin_url();}'. Une idée? Merci beaucoup!!! – Joann