Customizing the Subject Field in WordPress’ Notification Emails?

The question:

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?

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

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.') . "rnrn";
    $message .= network_site_url() . "rnrn";
    $message .= sprintf(__('Username: %s'), $user_login) . "rnrn";
    $message .= __('To reset your password visit the following address, otherwise just ignore this email and nothing will happen.') . "rnrn";
    $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . "rn";

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


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment