0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WordPress新規ユーザー作成の送信メールを自作プラグインでカスタマイズ

Posted at

対策
プラグインフォルダ作成
プラグインphpファイル作成
ダッシュボードで設定
カスタマイズ後のメール文面
迷惑メール振分防止プラグイン
テスト
参考記事

###wordpress新規ユーザー作成のメールが残念…

こんな感じ…

新規ユーザー宛て
件名:
【<サイト名>】 新規ユーザー登録

本文:
これはユーザー登録時に登録ユーザー宛に送信されます。
管理者宛て
件名:
【<サイト名>】 新規ユーザー登録

本文:
サイト「<サイト名>」の新規ユーザー登録:

ユーザー名: <WPユーザー名>

メール: <ユーザーメールアドレスの>

サイト運営側がアカウントを作成する場合、お客さんが受け取っても「なんじゃらほい?」になってしまいそう…

また、送信元がWordPressであり、PHPで発信しているためか、迷惑メールに振り分けられてしまう…

#対策
1)新規ユーザー宛てメールの内容をカスタマイズ
お客様へふさわしい文面
ログインURLを案内
初期パスワードを含めたログイン方法を案内

2)管理者宛てメールの内容をカスタマイズ
サイト表示名を追加

3)迷惑メールに振り分けられないカスタマイズ

#プラグインフォルダ作成

# mkdir /var/www/html/example.com/wp-content/plugins/message-to-mew-customer

#プラグインphpファイル作成

# vim/ var/www/html/example.com/wp-content/plugins/message-to-mew-customer/message-to-mew-customer.php
<?php
/*
Plugin Name: Custom New User Mail
Description: 新規ユーザー登録時に送信されるメールの内容を変更
*/
if(!function_exists('wp_new_user_notification')) {

	function wp_new_user_notification($user_id, $deprecated = null, $notify = '') {
		if ( $deprecated !== null ) {
			_deprecated_argument( __FUNCTION__, '4.3.1' );
		}

		global $wpdb, $wp_hasher;
		$user = get_userdata( $user_id );
	 
		//管理者宛のメール

		//件名
		$subject = get_option('blogname') . '|新規アカウント作成の通知';
		//本文

		$message  = '<サイト名>サイトの管理者へ' . "\r\n\r\n";
        $message .= $user->display_name . 'のアカウントが作成されました。' . "\r\n\r\n";//サイト表示名を取得
		$message .= '氏名:' . $user->display_name . "\r\n";//氏名を取得::
        $message .= 'ユーザー名:' . $user->user_login . "\r\n";//ユーザー名を取得
		$message .= 'メールアドレス:' . $user->user_email . "\r\n";//ユーザーメールアドレスを取得
        $message .= '初期パスワード:<初期パスワード>' . "\r\n\r\n";
        $message .= '<会社名>' . "\r\n";
        $message .= '<住所>' . "\r\n";
        $message .= 'TEL:<電話番号>' . "\r\n";
        $message .= '<運営元>' . "\r\n";

		@wp_mail(get_option('admin_email'), $subject, $message);

		 
		//登録ユーザー宛のメール

		//件名
		$subject = get_option('blogname') . '|新規アカウント作成の通知';
		//本文

        $message  = 'こんにちは、' . $user->display_name . "\r\n\r\n";//サイト表示名を取得
		$message .= '<サイト名>サイトにあなたのアカウントが作成されました。' . "\r\n\r\n";
        $message .= 'こちらからログインできます。' . "\r\n";
		$message .= 'サイトURL:<サイトURL>/' . "\r\n\r\n";
        $message .= 'ユーザー名:' . $user->user_login . "\r\n";//ユーザー名を取得
		$message .= 'メールアドレス:' . $user->user_email . "\r\n";//ユーザーメールアドレスを取得
        $message .= '初期パスワード:<初期パスワード>' . "\r\n\r\n";
        $message .= '初期パスワードでログイン後、必ずパスワードを変更し、ご自身で管理なさってください。' . "\r\n\r\n";
        $message .= '<会社名>' . "\r\n";
        $message .= '<住所>' . "\r\n";
        $message .= 'TEL:<電話番号>' . "\r\n";
        $message .= '<運営元>' . "\r\n";

		@wp_mail($user->user_email, $subject, $message);
	}
}
?>

#ダッシュボードで設定
WordPressダッシュボード > プラグインにmessage-to-mew-customerが表示されるので、有効にする

#カスタマイズ後のメール文面

新規ユーザーへのメール

新規ユーザー宛て
こんにちは、<サイト表示名>さん

<サイト名>サイトにあなたのアカウントが作成されました。

こちらからログインできます。
サイトURL:<サイトURL>

ユーザー名:<ユーザー名>
メールアドレス:<ユーザーメールアドレス>
初期パスワード:<初期パスワード>

初期パスワードでログイン後、必ずパスワードを変更し、ご自身で管理なさってください。

<会社名>
<住所>
TEL:<電話番号>
<運営元>

サイト管理者へのメール

管理者宛て
<サイト名>サイトの管理者へ

<サイト表示名>さんのアカウントが作成されました。

氏名:<サイト表示名>
ユーザー名:<ユーザー名>
メールアドレス:<ユーザーメールアドレス>
初期パスワード:<初期パスワード>

<会社名>
<住所>
TEL:<電話番号>
<運営元>

#迷惑メール振分防止プラグイン
送信元:WordPress
送信元メールアドレス:wordpress@<サイトドメイン>
これが理由で迷惑メールに振り分けられてしまう可能性が高い

プラグイン「WP Mail SMTP」で対策

設定
送信元:site@<サイトドメイン>
送信元メールアドレス:<サイト名>
「送信元アドレスを返信先 (return-path) として設定」にチェックを入れる

#テスト

WordPress新規ユーザーを作成した時の動作確認
→新規ユーザーにメールが飛ぶか
→管理者にメールが飛ぶか
→迷惑メールに振り分けられないか

#今後の課題

サイト名やサイトURL もPHPで取得できるといい


#参考記事
https://cree.fun/2832
https://techmemo.biz/wordpress/get_userdata/
https://bryog.com/how-to-use-wp-mail-smtp/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?