zoukankan      html  css  js  c++  java
  • WordPress改动新用户注冊邮件内容--自己定义插件

       有些开放用户注冊功能的WordPress站点,可能有这么一项需求,就是用户注冊成功后,系统会分别给站点管理员和新用户发送一封通知邮件。给管理员发送的是新用户的username和Email,给刚刚注冊的新用户发送的是他的username和password。系统发送的邮件是纯文本类型的,页面不太美观,有没有办法发送自己定义的HTML格式的邮件呢?答案是能够的。

         WordPress给我们提供了一个可供插件又一次定义的新用户邮件通知函数 wp_new_user_notification(),假设你不喜欢这个函数发送的邮件。我们能够又一次定义这个函数的内容,以达到我们自己定义的需求。

    原函数

         WordPress定义的这个函数内容是这样子的:

    if ( !function_exists('wp_new_user_notification') ) :
    /**
     * Notify the blog admin of a new user, normally via email.
     *
     * @since 2.0
     *
     * @param int $user_id User ID
     * @param string $plaintext_pass Optional. The user's plaintext password
     */
    function wp_new_user_notification($user_id, $plaintext_pass = '') {
        $user = get_userdata( $user_id );
    
        $user_login = stripslashes($user->user_login);
        $user_email = stripslashes($user->user_email);
    
        // The blogname option is escaped with esc_html on the way into the database in sanitize_option
        // we want to reverse this for the plain text arena of emails.
        $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    
        $message  = sprintf(__('New user registration on your site %s:'), $blogname) . "
    
    ";
        $message .= sprintf(__('Username: %s'), $user_login) . "
    
    ";
        $message .= sprintf(__('E-mail: %s'), $user_email) . "
    ";
    
        @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);
    
        if ( empty($plaintext_pass) )
            return;
    
        $message  = sprintf(__('Username: %s'), $user_login) . "
    ";
        $message .= sprintf(__('Password: %s'), $plaintext_pass) . "
    ";
        $message .= wp_login_url() . "
    ";
    
        wp_mail($user_email, sprintf(__('[%s] Your username and password'), $blogname), $message);
    
    }
    endif;

    自己定义邮件内容和格式

         我们能够新建一个"插件",又一次定义的wp_new_user_notification函数定义的邮件内容就可以。我们在wp-content/plugins/文件夹下。新建一个文本文件命名为new-user-notification.php,插入下面代码。保存。然后在后台启动插件new-user-notification就可以:

    <?php
    /*
      Plugin Name: new-user-notification
      Description:又一次定义发送邮件的内容和格式
      Version: 1.0
     */
    
    if ( !function_exists('wp_new_user_notification') ) :
    /**
     * Notify the blog admin of a new user, normally via email.
     *
     * @since 2.0
     *
     * @param int $user_id User ID
     * @param string $plaintext_pass Optional. The user's plaintext password
     */
    function wp_new_user_notification($user_id, $plaintext_pass = '') {
        $user = get_userdata( $user_id );
    
        $user_login = stripslashes($user->user_login);
        $user_email = stripslashes($user->user_email);
    
        // 获取博客名称
        $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    
        // 给管理员发送的邮件内容,这里是HTML格式
        $message = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>新用户注冊</title></head><body><div align="center"><table cellpadding="0" cellspacing="1" style="border:3px solid #d9e9f1;background:#7fbddd; text-align:left;"><tr><td style="padding:0;"><table cellpadding="30" cellspacing="0" style="border:1px solid #ffffff;background:#f7f7f7;500px;"><tr><td style="line-height:2;font-size:12px;">您的站点 <strong>' . $blogname . '</strong> 有新用户注冊。<br />用户名:' . $user_login . '<br />Email:' . $user_email . '<br /><br />假设您不是  <strong>' . $blogname . '</strong> 的管理员,请直接忽略本邮件!

    </div></td></tr></table></td></tr></table></div></body></html>'; // 给站点管理员发送邮件 $message_headers = "Content-Type: text/html; charset="utf-8" "; @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message, $message_headers); if ( empty($plaintext_pass) ) return; // 你能够在此改动发送给新用户的通知Email,这里是HTML格式 $message = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>新用户注冊</title></head><body><div align="center"><table cellpadding="0" cellspacing="1" style="border:3px solid #d9e9f1;background:#7fbddd; text-align:left;"><tr><td style="padding:0;"><table cellpadding="30" cellspacing="0" style="border:1px solid #ffffff;background:#f7f7f7;500px;"><tr><td style="line-height:2;font-size:12px;">您刚刚在站点 <strong>' . $blogname . '</strong> 注冊一个帐号。<br />用户名:' . $user_login . '<br />登陆password:' . $plaintext_pass . '<br />登录网址:<a href="' . wp_login_url() . '">' . wp_login_url() . '</a><br /><br />假设您没有在 <strong>'. $blogname . '</strong> 注冊过不论什么信息,请直接忽略本邮件!</div></td></tr></table></td></tr></table></div></body></html>'; // sprintf(__('[%s] Your username and password'), $blogname) 为邮件标题 wp_mail($user_email, sprintf(__('[%s] Your username and password'), $blogname), $message, $message_headers); } endif; ?

    >


     以上代码仅仅是一个演示样例,能够依据自己的需求进行改动。至于HTML邮件该怎么写,什么样的邮件格式美丽。这些就自己琢磨吧。



  • 相关阅读:
    self 和 super 关键字
    NSString类
    函数和对象方法的区别
    求两个数是否互质及最大公约数
    TJU Problem 1644 Reverse Text
    TJU Problem 2520 Quicksum
    TJU Problem 2101 Bullseye
    TJU Problem 2548 Celebrity jeopardy
    poj 2586 Y2K Accounting Bug
    poj 2109 Power of Cryptography
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7115542.html
Copyright © 2011-2022 走看看