会員制ページを作成した際、会員(ユーザ)が入力した内容を確認する必要があり、入力したタイミングで運営側に通知がいく仕組みをつくりたい、となったとき用のメモです。

標準機能で、ユーザーが情報変更を行った際、ユーザー宛に通知メールが飛ぶ機能はありますが、運営者に通知が飛ぶ仕組みはありません。

今回はこちらのブログ様の情報をもとに作業を行いました。
【WordPress】ユーザー情報変更時の自動返信メール内容を独自の自動返信メールにカスタマイズする方法 | HYZ STUDIO BLOG(ハイズスタジオブログ)

functions.phpの編集

テーマファイル直下にあるfunction.phpを編集し、更新メール通知機能を実装します。

メール送り主、件名設定

function set_mail_from( $email ) {
    return 'mail@exsample.com'; //送信元メールアドレス設定
}
function set_mail_from_name( $email_from ) {
    return 'ウェブテク帳'; //差出人名設定
}
add_filter( 'wp_mail_from', 'set_mail_from' );
add_filter( 'wp_mail_from_name', 'set_mail_from_name' );

更新時にメール送信設定

if(current_user_can('administrator')){
}else{
function my_user_update_notice($user_id){
 	$user = wp_get_current_user(); //ユーザー情報取得
 	$u_name = $user->user_login; //ユーザーログイン情報取得
 	$u_mail = "送信先メールアドレス"; //ユーザーメールアドレス情報取得

    $subject = 'ここに件名を入力'; //件名設定
 
// EOF~EOF;までがメール本文。自由に設定
$message = <<< EOF
{$u_name}様のプロフィールが更新されました。
変更内容は下記URLからご確認ください。
https://*********.com/{$u_name}/

EOF;
    wp_mail( $u_mail, $subject, $message);
}
add_action('profile_update', 'my_user_update_notice', 20);
}

参考にさせていただいたブログ様は、ユーザ自身に送られる設定でしたが、それを特定のアドレスに送信するようにカスタマイズしました。加えて、管理者がユーザ情報を更新するたびに通知が飛ぶ仕組みとなるため、”管理者権限でログインしていない場合”にのみ更新時にメールが飛ぶようにしました。

【WordPress】ユーザー情報変更時の自動返信メール内容を独自の自動返信メールにカスタマイズする方法 | HYZ STUDIO BLOG(ハイズスタジオブログ)

さいごに

件名にUltimate Memberとありますが、実際にはUltimate Memberは関係ない部分で対応しています。UltimateMemberで実装できなかったところを対応した、って感じですかね!