デフォルトの登録メールを変更するにはどうすればよいですか?(プラグインおよび/または非プラグイン)
3 回答
- 投票
-
- 2011-04-21
新しいユーザーの電子メールは、
wp_new_user_notification()
関数を使用して送信されます.この関数はプラグイン可能です.つまり、上書きできます.// Redefine user notification function if ( !function_exists('wp_new_user_notification') ) { function wp_new_user_notification( $user_id, $plaintext_pass = '' ) { $user = new WP_User($user_id); $user_login = stripslashes($user->user_login); $user_email = stripslashes($user->user_email); $message = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message); if ( empty($plaintext_pass) ) return; $message = __('Hi there,') . "\r\n\r\n"; $message .= sprintf(__("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n"; $message .= wp_login_url() . "\r\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\r\n"; $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n\r\n"; $message .= sprintf(__('If you have any problems, please contact me at %s.'), get_option('admin_email')) . "\r\n\r\n"; $message .= __('Adios!'); wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message); } }
注:テーマfunctions.phpファイルでプラグ可能な関数をオーバーライドすることはできません. WPのプラガブルファイルはその時点ですでにロードされているため、関数はWPによって定義されます(つまり、デフォルト).カスタムバージョンは、これが発生する前にロードする必要があります.つまり、カスタムプラグインファイルにロードする必要があります.
The new user email is sent using the
wp_new_user_notification()
function. This function is pluggable, which means that you can overwrite it:// Redefine user notification function if ( !function_exists('wp_new_user_notification') ) { function wp_new_user_notification( $user_id, $plaintext_pass = '' ) { $user = new WP_User($user_id); $user_login = stripslashes($user->user_login); $user_email = stripslashes($user->user_email); $message = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message); if ( empty($plaintext_pass) ) return; $message = __('Hi there,') . "\r\n\r\n"; $message .= sprintf(__("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n"; $message .= wp_login_url() . "\r\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\r\n"; $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n\r\n"; $message .= sprintf(__('If you have any problems, please contact me at %s.'), get_option('admin_email')) . "\r\n\r\n"; $message .= __('Adios!'); wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message); } }
Note: Overriding pluggable functions cannot be done in the theme functions.php file. WP's pluggable file is already loaded by that point so the function would be defined by WP (i.e. the default). Your custom version must load before this happens, which means you must load it in a custom plugin file.
-
マルチサイトでも機能しますか?マルチサイトには、通知メールを送信するためのms-functions.php内の関数がたくさんあることがわかります.Does it works for multisite too? I can see multisite has bunch of functions inside ms-functions.php for sending notification email.
- 0
- 2013-07-28
- Sisir
-
マルチサイトは `wpmu_signup_user_notification`を使用していると思います.Multisite uses `wpmu_signup_user_notification` I think.
- 0
- 2014-11-25
- Wyck
-
この答えは数年前のものです.受け入れられた答えは私にはうまくいきません.(functions.phpに追加しても、新しいユーザーが登録したときに送信される電子メールには何の違いもありません.)新しい質問を投稿する必要がありますか?This answer is several years old. The accepted answer doesn't work for me. (Adding it to functions.php has makes no difference to any of the emails sent when a new user registers.) Should I post a new question?
- 0
- 2015-04-21
- Kit Johnson
-
結局、私はこのチュートリアルで私のために働くいくつかのコードを見つけました:http://www.webtipblog.com/change-wordpress-user-registration-welcome-email/In the end I found some code that worked for me in this tutorial: http://www.webtipblog.com/change-wordpress-user-registration-welcome-email/
- 0
- 2015-04-24
- Kit Johnson
-
これがfunctions.phpで機能しないというコメントに対処するために、これは、プラグ可能な関数のカスタムバージョンを遅くロードできないためです.それは答えが古いこととは何の関係もありません.WPバージョンをロードする前に、カスタム関数を定義する必要があります.関数.phpにロードされると、プラグインのデフォルトバージョンはすでに定義されています.*プラグインとして*ロードする必要があります(プラグインとしてロードするという追加の手順を除いて、与えられた回答と投稿されたリンクキットの間に違いはありません).To address the comments regarding it not working in functions.php, that's because you can't load a custom version of a pluggable function that late. It has nothing to do with the answer being old. You must define your custom function before the WP version is loaded. When loaded in functions.php, the default version of the plugin is already defined. You have to load it *as a plugin* (there's no difference between the answer given and the link Kit posted other than the extra step of loading it as a plugin).
- 0
- 2019-12-09
- butlerblog
-
- 2018-01-03
2018年以降のユーザーの場合:
WordPress 4.9.0以降、これに使用できる新しいフィルターがあります(プラグインはもう必要ありません):
- wp_new_user_notification_email -ユーザーに送信されるメールをカスタマイズする
- wp_new_user_notification_email_admin -管理者に送信されるメールをカスタマイズする
管理者に送信されるメールの使用例(これをテーマの Functions.php に貼り付けることができます):
add_filter( 'wp_new_user_notification_email_admin', 'custom_wp_new_user_notification_email', 10, 3 ); function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) { $wp_new_user_notification_email['subject'] = sprintf( '[%s] New user %s registered.', $blogname, $user->user_login ); $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your blog %s.", $user->user_login, $user->user_email, $blogname ); return $wp_new_user_notification_email; }
For 2018 and onwards users:
Since WordPress 4.9.0 there are new filters you can use for this (no need for a plugin anymore):
- wp_new_user_notification_email - customise email sent to User
- wp_new_user_notification_email_admin - customise email sent to Admin
Usage example on email sent to Admin (you can paste this in your theme's functions.php ):
add_filter( 'wp_new_user_notification_email_admin', 'custom_wp_new_user_notification_email', 10, 3 ); function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) { $wp_new_user_notification_email['subject'] = sprintf( '[%s] New user %s registered.', $blogname, $user->user_login ); $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your blog %s.", $user->user_login, $user->user_email, $blogname ); return $wp_new_user_notification_email; }
-
または、 `wp_new_user_notification_email`および` wp_new_user_notification_email_admin`フィルターを使用することもできます.興味のある方は、 `wp_new_user_notification()`の[完全なドキュメントとソースコード](https://developer.wordpress.org/reference/functions/wp_new_user_notification/)をチェックしてください.Alternatively one could use the `wp_new_user_notification_email` and `wp_new_user_notification_email_admin` filters. Those interested can check out the [full documentation and source code](https://developer.wordpress.org/reference/functions/wp_new_user_notification/) for `wp_new_user_notification()`.
- 1
- 2018-01-10
- Pete
-
ピートに感謝します.4.9.0で導入されたようで、より良いソリューションのようです.Thanks Pete, looks like that was introduced in 4.9.0 and looks like a better solution.
- 0
- 2018-01-10
- Edu Wass
-
こんにちは.WP ApproveUserプラグインも使用しています. 現時点では、サインアップ時に標準の電子メールを送信します.すべきではありません.アカウントを最初に承認する必要があると言う必要があります. ユーザーの承認には、アカウントが承認され、それが正しく機能している場合のテキストを設定するオプションがあります.これは、事前に承認されたステップです. あなたが言及したこれらの新しいフィルターを使用しますか?Hi. I am also using the WP Approve User plugin. At the moment it sends the standard email when they sign up. It shouldn’t. It should say that account needs to be approved first. We Approve User has option to set the text for when the account has been approved and that is working right. It is the pre approved step before. Do I use these new filters you mentioned?
- 0
- 2019-12-08
- Andrew Truckle
-
- 2015-09-17
これはfunctions.phpでは機能しません.このコードをプラグイン内に配置する必要があります.
このためのプラグインを作成しない場合は、このリンク.
この関数の更新コードを
こちらから取得することを忘れないでください.p> -
`wp_new_user_notification()`関数へのフィルターフックの追加に基づく明確化のポイント.この回答は、プラグイン可能な関数としての `wp_new_user_notification()`のオーバーライドを具体的に参照しています.ただし、これは「wp_new_user_notification_email」および「wp_new_user_notification_email_admin」フィルターの使用には**適用されません**.これらは、functions.phpファイル(または[サイト固有のプラグイン](https://wpbitz.com/how-to-create-a-site-specific-plugin/))で使用できます.Just a point of clarification based on the addition of filter hooks to the `wp_new_user_notification()` function. This answer specifically references the overriding of `wp_new_user_notification()` as a pluggable function. However, this **does not apply** to using the `wp_new_user_notification_email` and `wp_new_user_notification_email_admin` filters. Those can be used in your functions.php file (or [a site specific plugin](https://wpbitz.com/how-to-create-a-site-specific-plugin/)).
- 0
- 2019-12-09
- butlerblog
新規ユーザー登録後、WPはログイン/パスワードとログインページへのリンクを記載したメールを送信します.
このデフォルトの電子メールテンプレートを変更する方法はありますか?件名と送信者も変更したいのですが.
編集:興味のある方は、こちらがプラグインソリューションです.