登録するたびに、wp-loginページに戻ります(バックエンド)。
ページテンプレート(フロントエンド)に登録したユーザーをリダイレクトする方法はありますか?
たとえば、フィルタregistration_redirect
を使用して独自のURLを返すことができます。
function wpse_19692_registration_redirect() {
return home_url( '/my-page' );
}
add_filter( 'registration_redirect', 'wpse_19692_registration_redirect' );
あなたのfunctions.php
またはプラグインにそれを落としなさい:)
これは私が使うものです
<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>
私はこの問題のためのプラグインを開発しました。また、プラグインなしのリダイレクトの生のコードも以下に示されています。
/** *ログイン後の役割に基づいてユーザーをカスタム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 "をダウンロードしてインストールすることができます。
私の場合は、 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バージョンでも動作します。