기본 등록 이메일을 변경하는 방법은 무엇입니까? (플러그인 및 / 또는 비 플러그인)


54

새 사용자 등록 후 WP는 로그인 / 암호 및 로그인 페이지 링크가 포함 된 이메일을 발송합니다.

이 기본 이메일 템플릿을 변경하는 방법이 있습니까? 제목과 발신자를 변경하고 싶습니다.

편집 : 관심있는 사람을 위해 여기 플러그인 솔루션이 있습니다.

답변:


62

새 사용자 이메일은 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 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);

    }
}

@Bainternet이 기능이 작동하지 않는 것 같습니다. 기능 파일에 추가했지만 표준 전자 메일은 계속 전송됩니다. 나는 다중 사이트에 있지만 중요하지 않습니다.

6
이제 그것을 얻었습니다 functions.php. 파일에 추가 할 때가 아니라 별도의 플러그인으로 만 작동하는 것 같습니다 . 이제 멋진 코드 덕분에 완벽하게 작동합니다!

다중 사이트에서도 작동합니까? 멀티 사이트에 ms-functions.php 내부에 알림 전자 메일을 보내는 기능이 많이 있음을 알 수 있습니다.
Sisir

멀티 사이트는 wpmu_signup_user_notification제 생각에 사용합니다 .
Wyck

이 답변은 몇 살입니다. 수락 된 답변이 효과가 없습니다. (functions.php에 추가해도 새로운 사용자 등록시 전송되는 이메일에는 아무런 영향이 없습니다.) 새로운 질문을 게시해야합니까?
키트 존슨

22

2018 이상 사용자 :

WordPress 4.9.0부터는 사용할 수있는 새로운 필터가 있습니다 (더 이상 플러그인 필요 없음).

관리자에게 보낸 이메일의 사용 예 (테마의 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;
}

또는 wp_new_user_notification_emailwp_new_user_notification_email_admin필터를 사용할 수도 있습니다 . 관심이 있으신 분은 전체 문서와 소스 코드 를 확인하십시오 wp_new_user_notification().
Pete

감사합니다 Pete, 4.9.0에서 소개 된 것처럼 보이며 더 나은 솔루션처럼 보입니다.
Edu Wass 2012 년

3

이것은 functions.php에서 작동하지 않습니다.이 코드를 플러그인 안에 넣어야합니다.

이 플러그인을 만들지 않으려면이 링크를 사용 하십시오.

이 함수 양식의 업데이트 코드를 여기 에 가져가는 것을 잊지 마십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.