WP-Membersの標準機能をさらに強化したお話
WEB先案内
WordPressで会員制サイトを作成する場合、WP-Membersというプラグインを使うことができます。 もともとWordPressにはユーザー管理の仕組みがあり、複数のユーザーアカウントの作成や権限設定などの制御することができます。 WP-Membersは、WordPressの持つユーザー管理の仕組みを強化して、ユーザーの登録やログインの仕組みを提供するプラグインです。 しかし、このプラグインの標準機能だけでは満足な会員制サイトには仕上がりません。 今回はさらにユーザー体験を向上させるための便利なPHPコードを紹介します。 ココナラで会員制サイトの制作依頼を受けた際に実装したPHPコードを備忘のためにまとめました。雑かもしれませんが一読してもらえると嬉しいです😌
はじめに
プラグインのインストール、設定について、詳しくまとめられているサイトがありますのでそちらをご覧ください(さっそく雑です🤣)
それでは上記サイトでは解説されていない便利なPHPコードを紹介していきます。
ログイン時
会員登録時に自動ログインする機能
会員を新規登録した直後にログイン情報の入力を求められたらどう感じますか? めんどくさいですよね❓そうならないようにするための処理は下記になります。
1function the_reg_redirect()
2{
3 if ( isset( $_POST ) && ! empty($_POST) ) {
4 $user_data = "";
5 if ( isset($_POST['user_email']) ){
6 $user_data = get_user_by('email', $_POST['user_email']);
7 }
8
9 if ( $user_data ) {
10 $user_id = $user_data->ID;
11 wp_set_auth_cookie( $user_id, false, is_ssl() ); //ログインさせる
12 $ref = $_SESSION['gopage'];
13 wp_redirect( $ref ); //任意のページへリダイレクト
14 exit;
15 }
16 }
17}
18add_action( 'wpmem_register_redirect','the_reg_redirect' );
ログイン後の管理バーを非表示にする機能
ログイン直後にWordPress標準の管理バーが表示される場合があります。 そんな時、余分な情報を見せないようにする処理は下記になります。
1function hide_admin_bar(){
2 $user = wp_get_current_user();
3 if (isset($user->data) && !$user->has_cap('edit_posts')){
4 show_admin_bar( false );
5 }
6}
7add_action( 'after_setup_theme', 'hide_admin_bar' );
ログイン後に元のページに戻る機能
ログイン直後は、引き続き元のページを閲覧したい時があると思います。 そんな時の処理はこちらになります。
1function afterlogin_function($redirect_to) {
2 global $user;
3 if ( in_array( $user->roles[0], array( 'subscriber') ) && isset($_SERVER['HTTP_REFERER']) ) {
4 $redirect_to= $_SERVER['HTTP_REFERER']; //ログインページにジャンプする前のページが入ります
5 }
6 return $redirect_to;
7}
8add_action('login_redirect', 'afterlogin_function', 10, 1);
ログアウト時
ログアウト後にリダイレクトする機能
ログアウトした時、「個別で用意したページ」にリダイレクトさせたり、「トップページ」にリダイレクトさせたい場合の処理になります。
1function my_logout_redirect(){
2 return 'リダイレクト先のURL';
3}
4add_filter( 'wpmem_logout_redirect', 'my_logout_redirect' );
まとめ
プラグイン「WP-Members」の基本的な設定からカスタマイズでは実現できない部分の紹介をしました。 本プラグインを組み合わせることで、よりUXを高めた会員制サイトを作れるはずです。 もし、分からない・動かない・エラーが発生してしまった場合、WEB先案内にご相談くださいm(_ _)m
ABOUT ME