Can I customize and edit the subject field in the "Password Reset" notification mails sent from our multisite blogs? I have tried some plugins like My brand login and white label CMS etc. But I can't edit this in password reset notifications .

Does anyone help me understand how to edit it ?

Update:

Today I tried with another installation .But it is not making any change.The Word 'wordpress' in from mail address is still there.I have added -

add_filter ( 'wp_mail_from_name', 'my_filter_that_outputs_the_new_name' );

to the code given by Doug .Am I missing something?Could you help me to solve this?

link|improve this question

73% accept rate
feedback

1 Answer

up vote 5 down vote accepted

You can change them using a filter. The filter hooks you want to use are:

  1. For the first email message (confirming they really want to reset the password):

    • 'retrieve_password_title'
    • 'retrieve_password_message'

  2. For the follow-up email message (sending the new username and password):

    • 'password_reset_title'
    • 'password_reset_message'


Update: To create and use these filters, put the following or similar code in your functions.php file:

function my_retrieve_password_subject_filter($old_subject) {
    // $old_subject is the default subject line created by WordPress.
    // (You don't have to use it.)

    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    $subject = sprintf( __('[%s] Password Reset'), $blogname );
    // This is how WordPress creates the subject line. It looks like this:
    // [Doug's blog] Password Reset
    // You can change this to fit your own needs.

    // You have to return your new subject line:
    return $subject;
}

function my_retrieve_password_message_filter($old_message, $key) {
    // $old_message is the default message already created by WordPress.
    // (You don't have to use it.)
    // $key is the password-like token that allows the user to get 
    // a new password

    $message = __('Someone has asked to reset the password for the following site and username.') . "\r\n\r\n";
    $message .= network_site_url() . "\r\n\r\n";
    $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
    $message .= __('To reset your password visit the following address, otherwise just ignore this email and nothing will happen.') . "\r\n\r\n";
    $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . "\r\n";

    // This is how WordPress creates the message. 
    // You can change this to meet your own needs.

    // You have to return your new message:
    return $message;
}

// To get these filters up and running:
add_filter ( 'retrieve_password_title', 'my_retrieve_password_subject_filter', 10, 1 );
add_filter ( 'retrieve_password_message', 'my_retrieve_password_message_filter', 10, 2 );

You would do something similar if you also want to modify the follow-up email. Use the WordPress code as a guide for creating the subject line and message (look for the variables $title and $message).

link|improve this answer
1  
I've added some sample code for creating the filters above. See the Codex article I linked to for more detail. – Doug Sep 3 '10 at 13:52
Thanks for your kind help . I will try it. Could you also help me customizing the From address in Password Reset notification mails-"WordPress <admin@mydomain.com> .Here WordPress should be replaced with my site name . – user391 Sep 3 '10 at 14:12
add_filter ( 'wp_mail_from_name', 'my_filter_that_outputs_the_new_name' ); – Doug Sep 3 '10 at 15:00
Success ! Wordpress has been replaced with the mail address -Admin . Thank you for helping me ! – user391 Sep 4 '10 at 6:29
You're quite welcome! Glad I could help. – Doug Sep 4 '10 at 12:19
show 1 more comment
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.