web-dev-qa-db-fra.com

Comment rediriger une inscription réussie vers un modèle de page?

Chaque fois que je m'inscris, je me retrouve dans la page wp-login (back-end):

enter image description here

Est-il possible de rediriger les utilisateurs qui s'inscrivent vers un modèle de page (front-end)?

4
janoChen

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 :)

12
TheDeadMedic

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>
3
user1623918

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 "

0
csehasib

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.

0
John Stones