投稿

情報の不完全なユーザーにプロフィール完成を促す

Gianism 4.2から不完全なプロフィールのユーザーに情報入力を促すことができます。「不完全なプロフィール」はデフォルトで次の2つです。

  • メールアドレス:Facebookは電話番号だけでも使えますし、Instagramはメールアドレスを提供しません。メールアドレスを取得できないSNSでもGianismは example@pseudo.facebook.com のような仮のメールアドレスを付与することで登録することができます。
  • パスワード: SNS連携したばかりだと、パスワードは自動生成されたものです。ユーザーがSNS連携を続けている限りは問題ありませんが、できれば自分で設定してもらいたいものです。

上記がクリアされていない場合、「不完全なメールアドレス」となります。

プロフィール完成の導線

ユーザーへの通知は3種類あります。基本的にはログインしているユーザーにだけ表示されます。

  1. 管理画面の「プロフィール」で通知を出す。これはデフォルトの動作です。
  2. 公開画面のすべてで「プロフィールが不完全なので入力してください」とプロフィール画面へのリンクを表示する。全ページに出ますので、ややアグレッシブな通知です。
  3. 強制的にプロフィールページへリダイレクトする。リダイレクト先は設定することができます。

リダイレクト先はWooCommerceの場合はMy Accountページを取得します。その他のプラグインについては、該当するパスを入力するようにしてください。

設定ミスがあるとリダイレクトループに陥ってしまう可能性がありますので、注意してください。

完全なプロフィールの判定条件をカスタム

デフォルトではメールアドレスとパスワードのチェックしか行いませんが、独自の情報を追加することができます。たとえば、なんらかのプラグインと共に利用しており、「氏名が必須」というケースを考えてみましょう。

この場合、ユーザープロフィールの完全性をチェックするフック gianism_profile_error を利用します。

/**
 * Check error
 *
 * @param WP_Error $error
 * @param WP_User $user
 */
add_filter( 'gianism_profile_error', function( $error, $user ) {
    if ( ! $user->first_name || ! $user->last_name ) {
        $error->add( 'invalid_user_name', '氏名を必ず入力してください。' ); 
    }
    return $error;
}, 10, 2 );

ここで返す $error が空っぽの場合は有効なユーザーであると判定されます。