2

I noticed WordPress give us some filters to customize the password reset request email like wp_mail_from, retrieve_password_title and retrieve_password_message and these last two are executed in the retrieve_password function at wp-login.php as following:

$title = apply_filters( 'retrieve_password_title', $title );
$message = apply_filters( 'retrieve_password_message', $message, $key );

if ( $message && !wp_mail( $user_email, wp_specialchars_decode( $title ), $message ) )
    wp_die( __('The e-mail could not be sent.') . "<br />\n" . __('Possible reason: your host may have disabled the mail() function.') );

return true;

That's cool but I also realized the wp_mail function does not use any header which make me believe everything should be override with filters.

Is there a filter to override the headers? Specifically Content-Type? And where would be the best place to register them?

Murilo
  • 728
  • 6
  • 13
  • I found the filter `'wp_mail_content_type` but I'm not sure where would be the best place to register it. Inside the message filter? – Murilo May 27 '14 at 09:13

1 Answers1

3

To run the filter wp_mail_content_type only in wp-login.php page, we can use one of its action hooks. Untested:

add_action( 'login_form_retrievepassword', function()
{
    add_filter( 'wp_mail_content_type', function( $old_content_type )
    {
        $new_content_type = 'text/plain';
        return $new_content_type;
    });
});
brasofilo
  • 25,496
  • 15
  • 91
  • 179
  • I don't want to change all my content types since I have different mail senders and different templates (plain text and html). – Murilo May 27 '14 at 10:07
  • (off-topic), please check the rejection reason: http://stackoverflow.com/review/suggested-edits/4913168 – brasofilo May 27 '14 at 10:19
  • please check the WordPress coding standards: http://make.wordpress.org/core/handbook/coding-standards/php/#brace-style – Murilo Jun 03 '14 at 13:44
  • Stack or not Stack, if a framework has a code convention/standard it should be followed the same way any "nice behaviour practices" should be. For example not changing someone's else code. In this case should we follow the WP standards or keep your "bad styled" code just because "we don't change other people's style". Is it ok to write my code inline and minified than? – Murilo Jun 03 '14 at 15:40
  • Let's get philosophical ;) I follow pretty much all WP standards **but** my curly braces position. – brasofilo Jun 03 '14 at 15:42
  • IF I WRITE A QUESTION AND MY CODE IN UPPERCASE BECAUSE IT'S EASIER TO READ WILL I BE ABLE TO DENY ANY REVISIONS JUST BECAUSE HERE IN STACK OVERFLOW WE DON'T CHANGE THE OTHER PEOPLE'S STYLE? – Murilo Jun 03 '14 at 15:51
  • For potato sake, man, things are getting out of hand. **Just don't touch other people's *code***, everything else is fair game as long as you're improving ***text*** clarity and comprehension. Passar bem. – brasofilo Jun 03 '14 at 16:35