如何应用“RETRIEVE_PASSWORD_Message”过滤器?

时间:2014-09-06 作者:William

我想更改WP发送的密码重置电子邮件的正文,其中包含一些更友好的内容。

我正在尝试使用"retrieve_password_message" 过滤器,但我把它弄糟了。

有人能发一个示例代码吗?

3 个回复
SO网友:Toskan

给出的答案都是善意的。但都不好。过滤器函数调用有更多参数,确切地说是4个。

这对我的邮件有效(我想用用户电子邮件替换用户名)

注意,我们有一个多站点页面。您可能希望将network\\u site\\u url替换为get_site_url()

通常在您的functions.php 您的文字按时间:

add_filter("retrieve_password_message", "mapp_custom_password_reset", 99, 4);

function mapp_custom_password_reset($message, $key, $user_login, $user_data )    {

  $message = "Someone has requested a password reset for the following account:

" . sprintf(__(\'%s\'), $user_data->user_email) . "

If this was a mistake, just ignore this email and nothing will happen.

To reset your password, visit the following address:

" .  \'<\' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), \'login\') . ">\\r\\n" . "

If you have any further issues, please email us to [email protected]

The Myapp Team";


  return $message;

}
奖励:更改电子邮件标题/主题

add_filter( \'retrieve_password_title\',
  function( $title )
  {
    $title = __( \'Password reset for myapp.org\' );
    return $title;
  }
);

SO网友:William

我认为这段代码可能对任何想要定制重置密码电子邮件的人都有帮助。

//* Password reset activation E-mail -> Body
add_filter( \'retrieve_password_message\', \'wpse_retrieve_password_message\', 10, 2 );
function wpse_retrieve_password_message( $message, $key ){
    $user_data = \'\';
    // If no value is posted, return false
    if( ! isset( $_POST[\'user_login\'] )  ){
            return \'\';
    }
    // Fetch user information from user_login
    if ( strpos( $_POST[\'user_login\'], \'@\' ) ) {

        $user_data = get_user_by( \'email\', trim( $_POST[\'user_login\'] ) );
    } else {
        $login = trim($_POST[\'user_login\']);
        $user_data = get_user_by(\'login\', $login);
    }
    if( ! $user_data  ){
        return \'\';
    }
    $user_login = $user_data->user_login;
    $user_email = $user_data->user_email;
    // Setting up message for retrieve password
    $message = "Looks like you want to reset your password!\\n\\n";
    $message .= "Please click on this link:\\n";
    $message .= \'<a href="\';
    $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), \'login\');
    $message .= \'">"\';
    $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), \'login\');
    $message .= \'"</a>\\n\\n"\';
    $message .= \'Kind Regards,<br/>Dream Team\';
    // Return completed message for retrieve password
    return $message;
}

SO网友:Domain

add_filter("retrieve_password_message", "your_custom_message", 99, 2);

  function your_custom_message($message, $key)    {

  $message = "your_custom_message";

  return $message;

}
这是使用“retrieve\\u password\\u message”筛选器挂钩的示例。

这是为了覆盖某人在检索密码时获取的电子邮件正文。

结束

相关推荐

_Password_Form函数未协同工作

我需要在我的wp网站上有两个功能。首先,我需要更改密码保护页面的文本,所以我直接从this article on wordpress codex.它工作得很漂亮。function my_password_form() { global $post; $label = \'pwbox-\'.( empty( $post->ID ) ? rand() : $post->ID ); $o = \'<form action=\"\' . esc_u