【问题标题】:Wordpress - Include username and password into email templateWordpress - 在电子邮件模板中包含用户名和密码
【发布时间】:2014-03-19 11:42:50
【问题描述】:

如果 Wordpress 用户的帐户已获得批准,我有一个非常简单的代码可以向他们发送电子邮件。

我还想将用户名和密码发送到此电子邮件中。

我该怎么做?

这是我用来发送电子邮件的代码。

<?php

add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));

/*--------------------------------
message received after account approval and account denied
------------------------------------*/
/**
* Modify the message sent to a user after being approved.
*
* @param $message The default message.
* @param $user The user who will receive the message.
* @return string the updated message.
*/
function my_custom_message( $message, $user ) {
$message = 'account approved, your login details are below:';
return $message;
}
function my_deniedcustom_message( $message, $user ) {
$message = 'Unfortunately you account has been denied membership';
return $message;
}
// add a new custom approval message
add_filter( 'new_user_approve_approve_user_message', 'my_custom_message' );

// add a new custom denial message
add_filter( 'new_user_approve_deny_user_message', 'my_deniedcustom_message' );
?>

【问题讨论】:

    标签: wordpress email templates


    【解决方案1】:

    基本上可以使用内置的wp_new_user_notification()函数:

    // Redefine user notification function
    if ( !function_exists('wp_new_user_notification') ) {
    
        function wp_new_user_notification( $user_id, $plaintext_pass = '' ) {
    
            $user = new WP_User( $user_id );
    
            $user_login = stripslashes( $user->user_login );
            $user_email = stripslashes( $user->user_email );
    
            $message  = sprintf( __('New user registration on %s:'), get_option('blogname') ) . "\r\n\r\n";
            $message .= sprintf( __('Username: %s'), $user_login ) . "\r\n\r\n";
            $message .= sprintf( __('E-mail: %s'), $user_email ) . "\r\n";
    
            @wp_mail(
                get_option('admin_email'),
                sprintf(__('[%s] New User Registration'), get_option('blogname') ),
                $message
            );
    
            if ( empty( $plaintext_pass ) )
                return;
    
            $message  = __('Hi there,') . "\r\n\r\n";
            $message .= sprintf( __("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n";
            $message .= wp_login_url() . "\r\n";
            $message .= sprintf( __('Username: %s'), $user_login ) . "\r\n";
            $message .= sprintf( __('Password: %s'), $plaintext_pass ) . "\r\n\r\n";
            $message .= sprintf( __('If you have any problems, please contact me at %s.'), get_option('admin_email') ) . "\r\n\r\n";
            $message .= __('Bye!');
    
            wp_mail(
                $user_email,
                sprintf( __('[%s] Your username and password'), get_option('blogname') ),
                $message
            );
        }
    }
    

    注意:如果没有将密码传递给函数,新注册的用户将不会收到他们的欢迎邮件。

    【讨论】:

    • 嗨,这正是我一直在寻找的,但我不太擅长 PHP,无法使上述函数与我的自定义代码一起工作。任何提示都会很棒,谢谢
    • 只需将此代码放在主题的function.php 文件中。如果此文件不存在,则创建它。
    • 也许我应该提到,我使用插件“新用户批准”来审核所有新用户,我上面的代码只有在用户批准时才会发送电子邮件。
    • OK,然后将这段代码 sn-p 放在插件的主 .php 文件中。
    • 嗨,再次感谢我尝试了您的代码,但是“新用户批准”插件会用自己的电子邮件覆盖。是否可以在我的自定义代码中包含用户/通行证来代替“新用户批准”电子邮件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 2019-09-06
    • 1970-01-01
    • 2015-11-16
    相关资源
    最近更新 更多