我有一个问题,关于在默认wp\\U邮件通知(例如,丢失密码响应)上更改默认发件人的名称/电子邮件,但不影响重力表单传递的通知。
我发现了一些关于更改名称/电子邮件默认值的线程,这就是我最终使用的。将默认发件人从“Wordpress”更改为“Wordpress”确实可以正常工作[email protected]\'。
// Change default WP email sender
add_filter(\'wp_mail_from\', \'new_mail_from\');
add_filter(\'wp_mail_from_name\', \'new_mail_from_name\');
function new_mail_from($old) {
return \'[email protected]\';
}
function new_mail_from_name($old) {
return \'Site Admin\';
}
但它最终也改变了重力表单传递的所有表单提交,因为重力表单只使用wp\\U邮件来处理完成的表单提交。重力表单提交应保留用户在填写表单时输入的发件人姓名/电子邮件。此信息存储在邮件头中,并传递给wp\\U mail进行发送。
有没有办法修改该功能,使其只影响通过默认地址发送的任何邮件(Wordpress&;[email protected])?也许是某种搜索/替换如果SMTP发送有帮助并且更安全/可靠,我也愿意使用SMTP发送。不幸的是,我只是不能流利地使用PHP来自己编写函数。
SO网友:Kenny J
我想我在另一个论坛上找到了答案,该论坛讨论了使用Contact Form7的问题,与我遇到的问题相同。
这就是我从那条线中得到并尝试的结果。它看起来确实有效,而且似乎只针对来自默认“Wordpress”发件人姓名/电子邮件的电子邮件。
// Change default WP email sender
add_filter(\'wp_mail_from\', \'doEmailFilter\');
add_filter(\'wp_mail_from_name\', \'doEmailNameFilter\');
function doEmailFilter($email_address){
if($email_address === "[email protected]")
return \'[email protected]\';
else
return $email_address;
}
function doEmailNameFilter($email_from){
if($email_from === "WordPress")
return \'Site Admin\';
else
return $email_from;
}
如果有更好的方法,请告诉我。抱歉,如果很明显。。。