Maison  >  Questions et réponses  >  le corps du texte

Après une inscription réussie, l'utilisateur sera dirigé vers la page d'où il vient.

J'utilise le code suivant pour rediriger l'utilisateur vers la page d'où il vient après une connexion réussie. Ce code a été testé et fonctionne bien :

add_action( 'woocommerce_login_form_end', 'actual_referrer' );
 
function actual_referrer() {
   if ( ! wc_get_raw_referer() ) return;
   echo '<input type="hidden" name="redirect" value="' . wp_validate_redirect( wc_get_raw_referer(), wc_get_page_permalink( 'myaccount' ) ) . '" />';
}

Maintenant, lorsque l'utilisateur accède à mon compte depuis la page d'inscription pour s'inscrire, une fois l'inscription réussie, je souhaite revenir à sa page d'origine, comme le code ci-dessus.

Pour cela, j'ai trouvé un code qui redirige l'utilisateur vers la page d'accueil après une inscription réussie :

add_filter( 'woocommerce_registration_redirect', 'customer_register_redirect' );
 
function customer_register_redirect( $redirect_url ) {
   $redirect_url = get_home_url();  
   return $redirect_url;
}

Existe-t-il un moyen de modifier ce code comme le code de connexion pour rediriger l'utilisateur vers la page d'où il vient ?

P粉107991030P粉107991030381 Il y a quelques jours458

répondre à tous(1)je répondrai

  • P粉476475551

    P粉4764755512023-09-08 00:30:00

    Vous pouvez utiliser wp_registration_url( urlencode( get_permalink() ) ); et vous serez redirigé vers la page précédente après une inscription réussie.

    Dans votre cas, puisqu'il s'agit de woocommerce, le lien vers votre page devrait être :

    <a href="<?php echo wc_get_page_permalink( 'myaccount' ) . '?redirect_to=' . urlencode( get_permalink() ); ?>">Register</a>

    Où wp_registration_url est l'URL de la page d'inscription, et ajoutez le paramètre ?redirect_to (y compris la page actuelle).

    En fonction de votre situation, vous pouvez modifier le code dans le filtre comme suit :

    add_filter( 'woocommerce_registration_redirect', 'customer_register_redirect' );
    function customer_register_redirect() {
        $redirect_url = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : home_url();
        return $redirect_url;
    }

    Si redirect_to n'est pas défini, nous vous redirigerons vers la page d'accueil ou une autre page que vous aimez.

    répondre
    0
  • Annulerrépondre