Wordpress:仅针对所有通知电子邮件更改###ADMIN_EMAIL###

Posted

技术标签:

【中文标题】Wordpress:仅针对所有通知电子邮件更改###ADMIN_EMAIL###【英文标题】:Wodpress: Change ###ADMIN_EMAIL### only for all notification email 【发布时间】:2022-01-07 10:02:12 【问题描述】:

有没有办法为 wordpress 中的所有自动通知电子邮件更改 ### ADMIN_EMAIL ###?

例如在更改密码通知和更改用户电子邮件中,我想要一个不同于真实管理员电子邮件的自定义电子邮件

如果您没有更改您的电子邮件,请通过 ###ADMIN_EMAIL###

联系站点管理员

如果您没有更改电子邮件,请通过 ###CUSTOM_EMAIL###

联系站点管理员

【问题讨论】:

【参考方案1】:

您可以使用过滤器:

password_change_email (source) email_change_email (source)

并使用 str_replace() 更新管理员电子邮件地址。

上述每个过滤器都接受 3 个参数(数组):

$email_change_email$pass_change_email(取决于使用的过滤器) $user $userdata

第一个参数有一个名为message 的数组项,其中包含一些动态替换的字符串:

###USERNAME###当前用户的用户名。 ###ADMIN_EMAIL### 管理员电子邮件以防万一。 ###EMAIL### 用户的电子邮件地址。 ###SITENAME### 网站名称。 ###SITEURL### 站点的 URL。

完整代码:

other_email@your-domain.com 更改为您的新管理员电子邮件地址。

/**
 * Change admin email in notifications.
 *
 * This applies to password and email change notifications.
 *
 * @param (array) $pass_change_email Used to build wp_mail().
 * @param (array) The original user array.
 * @param (array) The updated user array.
 *
 * @return (array) $pass_change_email Updated wp_mail() content.
 */
add_filter('password_change_email', 'replace_admin_email_in_notification_emails', 10, 3);
add_filter('email_change_email', 'replace_admin_email_in_notification_emails', 10, 3);

function replace_admin_email_in_notification_emails( $pass_change_email, $user, $userdata ) 
  $pass_change_email['message'] = str_replace( '###ADMIN_EMAIL###', 'other_email@your-domain.com', $pass_change_email['message'] );

  return $pass_change_email;


【讨论】:

欢迎来到***。你的回答有些欠缺。如果有人阅读了您的帖子但没有点击链接......他们会知道该怎么做吗? How to Answer @HowardE 我同意,我用更多细节更新了答案。

以上是关于Wordpress:仅针对所有通知电子邮件更改###ADMIN_EMAIL###的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有通知和确认过程的情况下更改 WordPress 中的主管理员电子邮件地址

Wordpress:当用户注册时发送通知,但仅适用于具有订阅者角色的用户

BLE 特性更改回调仅针对写入后的第一次更改执行

如何在 WordPress 中为致命错误处理程序 (WSoD) 设置通知电子邮件

通知WordPress中的旧邮件

杨泽业:给你的wordpress博客添加SMTP邮件服务,评论以后邮件通知