美好的一天,
我正在尝试编辑WordPress为HTML格式的用户激活邮件发送的标题。
问题1
我使用了以下过滤器,但电子邮件发送了两次。一旦从这个功能和另一个原始功能。
问题2
然后我在wpmu_signup_user_notification_email中添加了一个过滤器,将消息更改为HTML,但是当我发送消息时,激活消息的电子邮件是空白的(在两封电子邮件中),但标题是正确的。
问题1过滤
add_filter( 'wpmu_signup_user_notification', 'tpb_signup_user_notification', 10, 4 );
function tpb_signup_user_notification( $user, $user_email, $key, $meta = array() )
{
// Send email with activation link.
$admin_email = 'hello@example.com';
if ( $admin_email == '' )
$admin_email = 'support@' . $_SERVER['SERVER_NAME'];
$from_name = get_site_option( 'site_name' ) == '' ? 'Name Here' : esc_html( get_site_option( 'site_name' ) );
$message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/html; charset=\"" . get_option('blog_charset') . "\"\n";
...
wp_mail($user_email, $subject, $message, $message_headers);
return true;
}
问题2过滤
function wpse56797_signup_blog_notification_email( $message, $user, $user_email, $key )
{
$message = '<table>....</table>';
}
apply_filter('wpmu_signup_user_notification_email','wpse56797_signup_blog_notification_email', 10, 4 );
答案 0 :(得分:2)
我刚刚在我的网站上遇到问题1,解决方法是你需要从tpb_signup_user_notification函数返回false而不是true,因为在核心函数wpmu_signup_user_notification中你有
if ( ! apply_filters( 'wpmu_signup_user_notification', $user, $user_email, $key, $meta ) )
return false;
所以当你从函数返回false时,上面的条件评估为true,从而退出核心函数
答案 1 :(得分:1)
“问题2”下显示的功能可能应该返回HTML内容。
e.g。
return $message;