当新用户注册时,会收到确认电子邮件,上面写着:
Username: testuser To set your password, visit the following address:
但我想对其进行自定义,因此我将以下代码添加到
functions.php
但它不起作用。默认电子邮件仍会发送。
我正在使用WordPress 4.9.9
<?php
add_filter( \'wp_new_user_notification_email\', \'custom_wp_new_user_notification_email\', 10, 3 );
function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {
$wp_new_user_notification_email[\'subject\'] = sprintf(__( \'[%s] Your username and password\' ), $blogname, $user->user_login );
$key = get_password_reset_key( $user );
$message = sprintf(__(\'Welcome to our website,\')) . "\\r\\n\\r\\n";
$message .= \'To set your password, visit the following address:\' . "\\r\\n\\r\\n";
$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), \'login\') . "\\r\\n\\r\\n";
$message .= "After this you can enjoy our website!" . "\\r\\n\\r\\n";
$message .= "Kind regards," . "\\r\\n";
$message .= "Support Team" . "\\r\\n";
$wp_new_user_notification_email[\'message\'] = $message;
$wp_new_user_notification_email[\'headers\'] = \'From: MyName<[email protected]>\';
// this just changes the sender name and email to whatever you want (instead of the default WordPress <[email protected]>
return $wp_new_user_notification_email;
}
?>
为什么代码不起作用?你能帮帮我吗?
最合适的回答,由SO网友:butlerblog 整理而成
实际上,您所使用的代码没有任何问题(我按照上面的代码进行了测试,效果很好)。
但您必须考虑一些其他可能性:
在wp_new_user_notification()
函数是一个可插入函数。因此,它可以被插件或自定义代码替代。如果它被替换,则该函数的自定义版本可能缺少wp_new_user_notification_email
过滤器挂钩可能已经存在另一个与此相同筛选器挂钩的筛选器,但优先级较低(<;10),它会重定向或以其他方式退出进程。这将是一种糟糕的形式,但这是可能的。这不太可能是问题所在,但这是可能的,所以我才提到它有可能您的目标函数错误。我们假设该电子邮件是默认的WP注册,但您没有具体说明。如果您正在做一些有自定义注册和/或其他流程的事情,则不一定要通过wp_new_user_notification()
.对于这些可能性,我建议您执行以下操作:
查看主题,确保这是wp_new_user_notification_email
过滤器禁用所有插件停用所有插件后重新测试