質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

672閲覧

wordpressのユーザー登録のメールカスタマイズ(ユーザーへのパスワード通知)

pekopoko

総合スコア11

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2018/01/22 01:38

編集2018/01/25 00:23

wordpressにユーザー登録した際に
ユーザーに届くメールのカスタマイズについてご質問です。
(サイト管理者がユーザー登録してユーザーにメールで通知する場合です。)

以下のプラグインを作成しメールのカスタマイズをしています。

<?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 ); // ブログ名(サイト名)はHTMLのページに表示できるようエスケープ(HTMLの特殊文字を変換)しているため元に戻す $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); // === 管理者宛のメール === // 管理者用件名 $subject = "{$blogname}に新規ユーザーが登録されました。"; // 管理者用本文 $message = "ユーザー名は " . $user->user_login . " です。"; @wp_mail(get_option('admin_email'), $subject, $message); // === この部分は変更しないようにしてください === // `$deprecated was pre-4.3 `$plaintext_pass`. An empty `$plaintext_pass` didn't sent a user notifcation. if ( 'admin' === $notify || ( empty( $deprecated ) && empty( $notify ) ) ) { return; } // Generate something random for a password reset key. $key = wp_generate_password( 20, false ); /** This action is documented in wp-login.php */ do_action( 'retrieve_password_key', $user->user_login, $key ); // Now insert the key, hashed, into the DB. if ( empty( $wp_hasher ) ) { require_once ABSPATH . WPINC . '/class-phpass.php'; $wp_hasher = new PasswordHash( 8, true ); } $hashed = time() . ':' . $wp_hasher->HashPassword( $key ); $wpdb->update( $wpdb->users, array( 'user_activation_key' => $hashed ), array( 'user_login' => $user->user_login ) ); // === / ここまで === // === 登録ユーザー宛のメール === // ユーザー用件名 $subject = "[{$blogname}] 会員登録を行いました。"; // ユーザー用本文 $message = "会員サイトへメンバー登録いたしましたのでログインする際に必要なIDとパスワードをお知らせします。\r\n\r\n"; $message .= "●━━━━━━━━━━━━━━━━━━━━━━━━━━━●\r\n\r\n"; $message .= "ユーザー名:{$user->user_login}\r\n"; $message .= "パスワード:{$user->$plaintext_pass}\r\n\r\n"; $message .= "●━━━━━━━━━━━━━━━━━━━━━━━━━━━●\r\n\r\n"; $message .= "ログインURL\r\n"; $message .= "http://member.miu-flower.com/ \r\n\r\n"; wp_mail($user->user_email, $subject, $message); } } ?>

以下のコードの

$message .= "パスワード:{$user->$plaintext_pass}\r\n\r\n";

パスワードの表示ができません。

何か間違いが分かる方がいらっしゃれば
ご教授ください。

お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/01/22 07:30

ユーザー登録をユーザーがするのではなく、サイト管理者が登録してユーザーにメールで通知する目論見かね?
pekopoko

2018/01/22 08:07

まさにおっしゃる通りです。ですが他の回答者様のご意見を拝見する限り、メールでパスワード通知は難しそうですね・・・
yukikp

2018/01/24 06:59

コアファイルに手を付けるならありそうですが。
pekopoko

2018/01/25 00:25

コアファイルを変更していく方法があるのですね。ありがとうございます。
pekopoko

2018/01/25 00:46

他にも方法があるのですね。ご親切にご回答頂いたにも関わらず、返信できず申し訳ございませんでした。
guest

回答2

0

ベストアンサー

変更履歴

4.3.1 : パラメータ $plaintext_pass を廃止。$notify を第3パラメータとして追加。

引用:関数リファレンス/wp new user notification - WordPress Codex 日本語版

パスワードに関するパラメータは廃止されました。
そもそもメールにパスワードを記載するのはセキュリティ上推奨できません。

【追記】
WordPress側でパスワード発行して、という話でしたね。
wp_new_user_notificationを用いる限り、パスワードはユーザー側に再設定して貰わなければならないのでは?

投稿2018/01/22 02:01

編集2018/01/22 03:16
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pekopoko

2018/01/22 04:31

大変ご親切な回答ありがとうございます。 ところどころ他サイトからソースを持ってきたりしているので あまり理解できておらず申し訳ございませんが パスワードをメールに記載するには、どのようにすれば良いのか ヒントや参考サイトなどありましたらご教授いただけないでしょうか?
退会済みユーザー

退会済みユーザー

2018/01/22 04:37

繰り返しますが、WP4.3.1でパスワードのパラメータは廃止されました。 恐らくセキュリティ上の観点からでしょう。 パスワードはユーザーに再設定して貰わなければなりません。 登録通知メールに記載するのは恐らく不可能です。 そのため、メールにログインURLを記載してあげるのが親切です。 下記リンクを参考にしてください。 【参考】 ユーザー追加時に送信されるメールの内容を変更する方法 https://umebius.com/wordpress/email-wp_new_user_notification/
pekopoko

2018/01/25 04:38

パスワードはユーザーに再設定して貰わないとダメなんですね。 ログインURLを記載する方法で考えてみます。 参考サイトもありがとうございました。
guest

0

そもそも$plaintext_passがどこにも定義されてないし。
多分エラー吐いてるよね?

投稿2018/01/22 01:55

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問