註冊成功後將使用者引導至他來自的頁面
P粉107991030
P粉107991030 2023-09-07 12:38:06
0
1
514

我使用以下程式碼將使用者重新導向到成功登入後來自的頁面。此程式碼已經過測試並且可以正常工作:

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

現在,當使用者從註冊頁面進入my-account註冊時,註冊成功後,我想回到他原來的頁面,如上面的程式碼。

為此,我找到了一個程式碼,可以在註冊成功後將使用者重定向到主頁:

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

有沒有辦法像登入程式碼一樣編輯此程式碼,以將使用者重新導向到他們來自的頁面?

P粉107991030
P粉107991030

全部回覆(1)
P粉476475551

您可以使用wp_registration_url( urlencode( get_permalink() ) );,註冊成功後將重定向到上一頁。

在您的情況下,由於它是 woocommerce,指向您頁面的連結應該是:

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

其中 wp_registration_url 是註冊頁面的 URL,並新增 ?redirect_to 參數(包括目前頁面)。

根據您的情況,您可以將篩選器中的程式碼變更為:

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

如果沒有設定redirect_to,我們將重定向到主頁或您喜歡的其他頁面。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板