投稿

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

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

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

wpg_connectの利用

wpg_connectはGianismでユーザーが登録あるいはログインしたときに実行されるアクションフックです。このフックを利用することで、登録時にユーザーにメールを送ることができます。

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アカウント経由で作成されたユーザーはメールアドレスを持っていないことがあります。内部的には [email protected] という仮のドメインのメールアドレスを作成されます。

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

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

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

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