如何更改WordPress默认电子邮件文本中的电子邮件?

时间:2020-08-13 作者:Honoluluman

Wordpress向用户发送一些默认的电子邮件文本。

例如,当发送密码重置电子邮件时,用户会收到如下自动电子邮件:

您好,用户,此通知确认将访问密码更改为NAMEOFWEBSITE。如果您尚未更改密码,请通过以下地址与网站管理员联系:[email protected] 此消息已发送给用户[email protected]真诚地,我们所有人都以网站的名义https://www.nameofwebsite.com

我需要保留我在wordpress中设置的默认管理电子邮件。但我需要过滤所有电子邮件,以便在文本中有另一封电子邮件,如下所示:

您好,用户,此通知确认将访问密码更改为NAMEOFWEBSITE。如果您尚未更改密码,请通过以下地址与网站管理员联系:[email protected] 此消息已发送给用户[email protected]真诚地,我们所有人都以网站的名义https://www.nameofwebsite.com

如果可以使用一些过滤器,有什么想法吗?

2 个回复
SO网友:rudtek

绝对有一个过滤器!

以下是wordpress开发者页面的参考链接:https://developer.wordpress.org/reference/hooks/password_change_email/

基本上是将此函数(带有更改)添加到您的函数中。php将覆盖默认密码重置电子邮件。

apply_filters( \'password_change_email\', array $pass_change_email, array $user, array $userdata )
完整示例:

add_filter( \'password_change_email\', \'rt_change_password_mail_message\', 10, 3 );

function rt_change_password_mail_message( $pass_change_mail, $user, $userdata ) {

 $new_message_txt = __( \'Hi [first_name] [last_name], 

 This notice confirms that your email was changed on on our site.

 If you did not change your email, please contact the Site Administrator on our site.

 This email has been sent to [user_email]

 Regards,
ME\' );
 $pass_change_mail[ \'message\' ] = $new_message_txt;
 return $pass_change_mail;

}
查看此处的注释,您将看到该消息是$pass_change_email 大堆所以如果你只是想添加一些东西,试试这个。。。

add_filter( \'password_change_email\', \'rt_change_password_mail_message\', 10, 3 );

function rt_change_password_mail_message( $pass_change_mail, $user, $userdata ) {

 $new_message_txt = __( \'new text with phone number\' );
 $pass_change_mail[ \'message\' ] = $pass_change_mail[ \'message\' ] . $new_message_txt;
 return $pass_change_mail;

}

SO网友:Ankit

我注意到您希望管理员电子邮件保留在某些电子邮件中,但您需要在密码和电子邮件更改电子邮件中更改管理员电子邮件。

因此,您可以执行以下操作。

钩住email_change_emailpassword_change_email 过滤器$email_change_email 和$pass_change_email 分别用于回调函数中的那些过滤器$pass_change_email[\'message\'], 因此,您只需在那里查找管理电子邮件,并将其替换为新的电子邮件地址这可以作为密码更改电子邮件的示例。

/**
 * Change admin email in password change email.
 */
function change_password_change_admin_email( array $pass_change_email ) {
    $admin_email = get_option(\'admin_email\');
    $pass_change_email[\'message\'] = str_replace( $admin_email, \'[email protected]\', $pass_change_email[\'message\'] );

    return $pass_change_email;

}
add_filter( \'password_change_email\', \'change_password_change_admin_email\' );