使用主题我的登录WordPress插件过滤'retrieve_password_message'



我正在使用主题我的登录WordPress插件。我的目标是过滤"retrieve_password_message" - 只是为了对用户请求重置密码时发送的电子邮件进行一些小的文本更改。

我的代码:

function filter_reset_password_request_email_body( $message, $key, $user_id ) {
    $user_login = bp_core_get_username( $user_id );
    $message .= sprintf( __( 'Password reset request for %s' ), $user_login ) . "rnrn";
    $message .= __( 'If this was not you, please ignore this email and nothing will happen.' ) . "rnrn";
    $message .= __( 'To reset your password, visit the following link:' ) . "rnrn";
    $message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . "rn";
    return $message;
}
add_filter( 'retrieve_password_message', 'filter_reset_password_request_email_body', 10, 3 );

问题是 - 使用此过滤器时,发送的电子邮件会将过滤后的邮件直接显示在原始(未过滤)邮件下方。我只需要过滤后的消息显示在电子邮件正文中。

我做错了什么,或者这可能是主题我的登录的错误?

希望有人能对此有所了解。

注意:我正在使用BuddyPress,这就是为什么我可以使用bp_core_get_username来获取用户的用户名。

在代码的第 5 行(首次引用 $message )中,删除=符号之前的.。 即

$message = sprintf( __( 'Password reset...

当前实现发生的情况是,它将自定义消息附加到通过筛选器传递的内容的末尾。相反,您只想"重置"$message以从您的消息开始。

最新更新