Rumah  >  Soal Jawab  >  teks badan

Selepas pendaftaran berjaya, pengguna akan diarahkan ke halaman asalnya.

Saya menggunakan kod berikut untuk mengubah hala pengguna ke halaman asal mereka selepas log masuk berjaya. Kod ini telah diuji dan berfungsi dengan baik:

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' ) ) . '" />';
}

Sekarang, apabila pengguna memasuki akaun saya dari halaman pendaftaran untuk mendaftar, selepas pendaftaran berjaya, saya ingin kembali ke halaman asalnya, seperti kod di atas.

Untuk ini, saya menemui kod yang mengubah hala pengguna ke halaman utama selepas pendaftaran berjaya:

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

Adakah terdapat cara untuk mengedit kod ini seperti kod log masuk untuk mengubah hala pengguna ke halaman asal mereka?

P粉107991030P粉107991030381 hari yang lalu461

membalas semua(1)saya akan balas

  • P粉476475551

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

    Anda boleh menggunakan wp_registration_url( urlencode( get_permalink() ) ); dan anda akan dialihkan ke halaman sebelumnya selepas pendaftaran berjaya.

    Dalam kes anda, memandangkan ia adalah woocommerce, pautan ke halaman anda hendaklah:

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

    Di mana wp_registration_url ialah URL halaman pendaftaran dan tambahkan parameter ?redirect_to (termasuk halaman semasa).

    Bergantung pada situasi anda, anda boleh menukar kod dalam penapis kepada:

    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;
    }

    Jika redirect_to tidak ditetapkan, kami akan mengubah hala ke halaman utama atau halaman lain yang anda suka.

    balas
    0
  • Batalbalas