HTML激活电子邮件Wordpress

时间:2014-01-21 01:24:59

标签: php email wordpress

美好的一天,

我正在尝试编辑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 );

2 个答案:

答案 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;