大量ファイルFTP転送、タイムアウトでイラッとしてませんか?
WEB先案内
WEB先案内 ITブログ
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