5

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?

1 Answer 1

8

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).

7
  • 1
    I've added some sample code for creating the filters above. See the Codex article I linked to for more detail.
    – Doug
    Commented Sep 3, 2010 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 <[email protected]> .Here WordPress should be replaced with my site name .
    – user391
    Commented Sep 3, 2010 at 14:12
  • add_filter ( 'wp_mail_from_name', 'my_filter_that_outputs_the_new_name' );
    – Doug
    Commented Sep 3, 2010 at 15:00
  • Success ! Wordpress has been replaced with the mail address -Admin . Thank you for helping me !
    – user391
    Commented Sep 4, 2010 at 6:29
  • You're quite welcome! Glad I could help.
    – Doug
    Commented Sep 4, 2010 at 12:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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