web-dev-qa-db-ja.com

登録が成功したことをページテンプレートにリダイレクトする方法

登録するたびに、wp-loginページに戻ります(バックエンド)。

enter image description here

ページテンプレート(フロントエンド)に登録したユーザーをリダイレクトする方法はありますか?

4
janoChen

たとえば、フィルタregistration_redirectを使用して独自のURLを返すことができます。

function wpse_19692_registration_redirect() {
    return home_url( '/my-page' );
}

add_filter( 'registration_redirect', 'wpse_19692_registration_redirect' );

あなたのfunctions.phpまたはプラグインにそれを落としなさい:)

12
TheDeadMedic

これは私が使うものです

<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

私はこの問題のためのプラグインを開発しました。また、プラグインなしのリダイレクトの生のコードも以下に示されています。

/** 
 *ログイン後の役割に基づいてユーザーをカスタムURLにリダイレクトします
 **/
 function wp_woo_custom_redirect($ redirect、$ user){
 
 //ユーザーに割り当てられているすべての役割のうち最初の役割を取得する
 $ role = $ user-> roles [0]; 
 $ dashboard = admin_url(); 
 $ myaccount = get_permalink(wc_get_page_id( 'my-account')); 
 
 if($ role == 'administrator'){
 
 ] //管理者をダッシュ​​ボードにリダイレクトする
 $ admin_redirect = get_option( 'admin_redirect'); 
 $ redirect = $ admin_redirect; 
} elseif($ role == 'shop-manager '){
 
 //ショップマネージャをダッシュ​​ボードにリダイレクトする
 $ shop_manager_redirect = get_option(' shop_manager_redirect '); 
 $ redirect = $ shop_manager_redirect; 
] elseif($ role == 'customer' || $ role == 'subscriber'){
 
 //顧客と購読者を "マイアカウント"ページにリダイレクトする[ $ customer_redirect = get_option( 'customer_redirect'); 
 $ redirect = $ customer_redirect; 
} else {
 
 //他のロールをにリダイレクトする前回訪問したページ、または利用できない場合はホーム
 $ redirect = wp_get_referer()? wp_get_referer():home_url(); 
} 
 return $ redirect; 
} 
 add_filter( 'woocommerce_login_redirect'、 'wp_woo_custom_redirect'、10、2); [ ]

プラグインを使ってもコードを使わなくても快適に作業できますか?あなたは私のプラグイン " WP WooCommerce Redirect "をダウンロードしてインストールすることができます。

0
csehasib

私の場合は、 ProfilePress のようなプラグインを使ってWordPress登録フォームを起動/作成します。次のコードは自動的にログインし、登録ユーザーをウェルカムページにリダイレクトします。

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

注:私は無料のプラグイン( https://wordpress.org/support/plugin/ppress )バージョンを使用しており、上記のコードは無料でもPROバージョンでも動作します。

0
John Stones