Làm thế nào để thay đổi email đăng ký mặc định? (plugin và / hoặc không phải plugin)


54

Sau khi đăng ký người dùng mới, WP sẽ gửi email với thông tin đăng nhập / mật khẩu và liên kết đến trang đăng nhập.

Có cách nào để thay đổi mẫu email tự động này không? Tôi cũng muốn thay đổi chủ đề và người gửi.

Chỉnh sửa: Đối với bất kỳ ai quan tâm, đây là một giải pháp plugin.

Câu trả lời:


62

email người dùng mới được gửi bằng wp_new_user_notification()chức năng có thể cắm có nghĩa là bạn có thể ghi đè lên nó:

// 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 your blog %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 .= __('Adios!');

        wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message);

    }
}

@Bai Internet Tôi dường như không thể làm việc này được, tôi đã thêm nó vào tệp chức năng của mình, nhưng email tiêu chuẩn vẫn tiếp tục gửi. Tôi đang ở trên nhiều trang, nhưng điều đó không quan trọng, phải không?

6
OK đã nhận nó ngay bây giờ, nó dường như chỉ hoạt động như một plugin riêng biệt, không phải khi bạn thêm nó vào functions.phptệp của mình . Bây giờ nó hoạt động hoàn hảo, cảm ơn một lần nữa cho đoạn mã tốt đẹp đó!

Nó cũng hoạt động cho multisite? Tôi có thể thấy multisite có một loạt các chức năng bên trong ms-tests.php để gửi email thông báo.
Sisir

wpmu_signup_user_notificationTôi nghĩ rằng việc sử dụng nhiều trang web .
Wyck

Câu trả lời này là vài năm tuổi. Câu trả lời được chấp nhận không làm việc cho tôi. (Thêm nó vào hàm.php không có sự khác biệt với bất kỳ email nào được gửi khi người dùng mới đăng ký.) Tôi có nên đăng câu hỏi mới không?
Kit Johnson

22

Dành cho người dùng 2018 trở đi:

Vì WordPress 4.9.0 có các bộ lọc mới mà bạn có thể sử dụng cho việc này (không cần plugin nữa):

Cách sử dụng ví dụ về email được gửi tới Admin (bạn có thể dán này ở của chủ đề của bạn functions.php ):

add_filter( 'wp_new_user_notification_email_admin', '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] New user %s registered.', $blogname, $user->user_login );
    $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your blog %s.", $user->user_login, $user->user_email, $blogname );
    return $wp_new_user_notification_email;
}

Ngoài ra, người ta có thể sử dụng wp_new_user_notification_emailwp_new_user_notification_email_adminbộ lọc. Những người quan tâm có thể kiểm tra tài liệu đầy đủ và mã nguồn cho wp_new_user_notification().
Pete

Cảm ơn Pete, có vẻ như đã được giới thiệu trong 4.9.0 và có vẻ như là một giải pháp tốt hơn.
Edu Wass

3

Điều này sẽ không hoạt động trên hàm.php, bạn cần đặt mã này vào plugin.

Nếu bây giờ bạn không tạo plugin cho việc này, chỉ cần sử dụng liên kết này

đừng quên lấy mã cập nhật của mẫu hàm này tại đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.