投稿

Gianismでユーザーが登録したあとにメッセージを送る

Gianismはv3.1までユーザー登録時にデフォルトでメッセージを送りません。理由としてはSNSによってはメールアドレスを取得できない場合があるからです。しかしながら、会員制サイトを運営していると、ときおり「パスワードも登録時のメールアドレスも忘れてしまったままSNSアカウントを削除した」というユーザーが現れます。

このため、ユーザーが登録した場合にメールを送る方法を説明します。

wpg_connectの利用

wpg_connectはGianismでユーザーがSNSアカウントでユーザー登録あるいは既存WordPressアカウントとSNSアカウントを連携したときに実行されるアクションフックです。このフックを利用することで、登録時にユーザーにメールを送ることができます。

add_action( 'wpg_connect', function( $user_id, $data, $service, $on_creation ) {
    // 登録時だけ実行
    if ( ! $on_creation ) {
        return;
    }
    // ユーザー情報を取得
    $user = get_userdata( $user_id );
    // メールを送信
    $subject = 'ようこそ、Gianismへ';
    $message = sprintf( '%s様 新規登録ありがとうございます。', $user->display_name );
    wp_mail( $user->user_email, $subject, $message );
}, 10, 4 );

注意点

GianismによってSNSアカウント経由で作成されたユーザーはメールアドレスを持っていないことがあります。内部的には xxx@pseudo.example.jp という仮のドメインのメールアドレスを作成されます。

そのため、次のような方法でメールを送らないようにチェックを入れる必要があるかもしれません。

if ( false !== strpos( $user->user_email, '@pseudo.' ) ) {
    // ユーザーのアドレスが仮のものだったらメールを送らない
    return;
}

プレミアムアカウントサービス

プレミアムユーザーに向けて、簡易的なサンプルプラグインを用意しました。Gumroadよりダウンロードしてください。