WP-Membersの標準機能をさらに強化したお話
WP-Members の標準だけで会員サイトを組むと、後で「あと一歩のカスタマイズ」に必ず詰まります。最初に拡張ポイントを押さえておくと後が楽です。
※ 本記事は2023年当時の事例です。 現在の WordPress 6.x / PHP 8.x 環境では推奨手順が変わっている可能性があります。最新の対応方針は 復旧サービス または ご相談窓口 から確認ください。
WordPress で会員制サイトを作成する場合、WP-Members というプラグインが利用できます。 WordPress にはもともとユーザー管理の仕組みがあります。複数のユーザーアカウント作成や権限設定など、各種制御が可能です。 WP-Members は、WordPress 標準のユーザー管理機能を強化し、ユーザー登録やログインの仕組みを提供するプラグインです。 ただし、このプラグインの標準機能だけでは満足できる会員制サイトには仕上がりません。 今回は、ユーザー体験をさらに向上させる便利な PHP コードを紹介します。 ココナラで会員制サイトの制作を受託した際に実装した PHP コードを、備忘のためまとめました。やや雑な記述かもしれませんが、一読いただけると嬉しいです😌
はじめに
プラグインのインストール・設定について、詳しくまとめてあるサイトがあります。そちらをご覧ください (さっそく雑です🤣)。
それでは、上記サイトで解説されていない便利な PHP コードを紹介していきます。
ログイン時
会員登録時に自動ログインする機能
会員を新規登録した直後に、ログイン情報の入力を求められたらどう感じますか? めんどくさいですよね❓ そう感じさせない処理を、以下に示します。
function the_reg_redirect()
{
if ( isset( $_POST ) && ! empty($_POST) ) {
$user_data = "";
if ( isset($_POST['user_email']) ){
$user_data = get_user_by('email', $_POST['user_email']);
}
if ( $user_data ) {
$user_id = $user_data->ID;
wp_set_auth_cookie( $user_id, false, is_ssl() ); //ログインさせる
$ref = $_SESSION['gopage'];
wp_redirect( $ref ); //任意のページへリダイレクト
exit;
}
}
}
add_action( 'wpmem_register_redirect','the_reg_redirect' );PHPログイン後の管理バーを非表示にする機能
ログイン直後に、WordPress 標準の管理バーが表示される場合があります。 余分な情報を見せないようにする処理を、以下に示します。
function hide_admin_bar(){
$user = wp_get_current_user();
if (isset($user->data) && !$user->has_cap('edit_posts')){
show_admin_bar( false );
}
}
add_action( 'after_setup_theme', 'hide_admin_bar' );PHPログイン後に元のページに戻る機能
ログイン直後は、引き続き元のページを閲覧したい場面があります。 そのときの処理は、こちらです。
function afterlogin_function($redirect_to) {
global $user;
if ( in_array( $user->roles[0], array( 'subscriber') ) && isset($_SERVER['HTTP_REFERER']) ) {
$redirect_to= $_SERVER['HTTP_REFERER']; //ログインページにジャンプする前のページが入ります
}
return $redirect_to;
}
add_action('login_redirect', 'afterlogin_function', 10, 1);PHPログアウト時
ログアウト後にリダイレクトする機能
ログアウト時に「個別に用意したページ」や「トップページ」へリダイレクトさせたい場合の処理です。
function my_logout_redirect(){
return 'リダイレクト先のURL';
}
add_filter( 'wpmem_logout_redirect', 'my_logout_redirect' );PHPまとめ
プラグイン「WP-Members」の基本設定やカスタマイズでは実現できない部分を紹介しました。 本プラグインと組み合わせれば、より UX を高めた会員制サイトを作れるはずです。 もし「分からない」「動かない」「エラーが出る」など困った場合は、WEB 先案内にご相談ください m(_ _)m
会員機能を入れたあとに「この項目を増やしたい」「この権限を分けたい」が出てきたら、一度設計を見直すタイミングかもしれません。






