Chaque fois que je m'inscris, je me retrouve dans la page wp-login (back-end):
Est-il possible de rediriger les utilisateurs qui s'inscrivent vers un modèle de page (front-end)?
Vous pouvez utiliser le filtre registration_redirect
pour renvoyer votre propre URL, par exemple;
function wpse_19692_registration_redirect() {
return home_url( '/my-page' );
}
add_filter( 'registration_redirect', 'wpse_19692_registration_redirect' );
Déposez-le dans votre functions.php
ou un plugin :)
C'est ce que j'utilise
<form action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post">
<input type="text" name="user_login" value="Username" id="user_login" class="input" />
<input type="text" name="user_email" value="E-Mail" id="user_email" class="input" />
<?php do_action('register_form'); ?>
<input type="submit" value="Register" id="register" />
<input type="hidden" name="redirect_to" value="/success"/>
<p class="statement">A password will be e-mailed to you.</p>
</form>
J'ai développé un plugin pour ce problème. Vous trouverez également ci-dessous le code brut d’une redirection sans plug-in.
/** * Rediriger les utilisateurs vers une URL personnalisée en fonction de leur rôle après la connexion **/ Fonction wp_woo_custom_redirect ($ redirect, $ user) { // Récupère le premier de tous les rôles attribués à l'utilisateur $ Role = $ user-> rôles [0]; $ Dashboard = admin_url (); $ mon_compte = get_permalink (wc_get_page_id ('mon-compte'));; if ($ role == 'administrateur') { // Rediriger les administrateurs vers le tableau de bord $ Admin_redirect = get_option ('admin_redirect'); $ Redirect = $ admin_redirect; } Elseif ($ role == 'shop-manager ') { // Rediriger les responsables de boutique vers le tableau de bord $ Shop_manager_redirect = get_option (' shop_manager_redirect '); $ Redirect = $ shop_manager_redirect; } elseif ($ role == 'client' || $ role == 'abonné') { // Redirige les clients et les abonnés vers la page "Mon compte" $ customer_redirect = get_option ('customer_redirect'); $ redirect = $ customer_redirect; } else { // Rediriger tout autre rôle vers page précédente visitée ou, si non disponible, à la maison $ redirect = wp_get_referer ()? wp_get_referer (): home_url (); } return $ redirect; } add_filter ('woocommerce_login_redirect', 'wp_woo_custom_redirect', 10, 2);
Si vous vous sentez à l'aise avec le plugin ou sans code? Vous pouvez télécharger et installer mon plugin " WP Redirections WooCommerce "
Si, comme moi, vous utilisez un plugin tel que ProfilePress pour alimenter/créer votre formulaire d’inscription WordPress, le code suivant se connectera automatiquement et redirigera les utilisateurs enregistrés vers une page de bienvenue.
add_action( 'pp_after_registration', 'pp_redirect_after_registration', 10, 3 );
function pp_redirect_after_registration( $form_id, $user_data, $user_id ) {
wp_set_auth_cookie( $user_id );
wp_set_current_user( $user_id );
$custom_page_url = 'http://example.com/welcome/';
wp_redirect( $custom_page_url );
exit;
}
Note: J'utilise la version gratuite du plugin ( https://wordpress.org/support/plugin/ppress ) et le code ci-dessus fonctionne aussi bien en version gratuite qu'en version PRO.