Varsayılan kayıt e-postası nasıl değiştirilir? (eklenti ve / veya eklenti olmayan)


54

Yeni bir kullanıcı kaydının ardından, WP giriş / şifre ile bir e-posta ve giriş sayfasına bir bağlantı gönderir.

Bu varsayılan e-posta şablonunu değiştirmenin bir yolu var mı? Ayrıca konuyu ve göndereni de değiştirmek isterim.

Düzenleme: İlgilenen herkes için, burada bir eklenti çözümü.

Yanıtlar:


62

Yeni kullanıcı e-postası, wp_new_user_notification()üzerine yazabileceğiniz anlamına gelen takılabilir işlev kullanılarak gönderilir :

// 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 Bunu işe almak gibi görünmüyor, fonksiyonları dosyama ekledim, ancak standart e-posta göndermeye devam ediyor. Çok bölgedeyim, ama bu önemli olmamalı, değil mi?

6
Tamam şimdi anladım, sadece functions.phpdosyaya eklediğinizde değil, ayrı bir eklenti olarak çalışıyor gibi görünüyor . Şimdi mükemmel çalışıyor, bu güzel kod için tekrar teşekkürler!

Multisite için de çalışıyor mu? Multisite'ın ms-functions.php içinde bildirim e-postası göndermek için birçok işlevi olduğunu görebiliyorum.
Sisir,

Multisite kullanır wpmu_signup_user_notificationdüşünüyorum.
Wyck

Bu cevap birkaç yıllık. Kabul edilen cevap benim için işe yaramıyor. (Yeni bir kullanıcı kaydolduğunda gönderilen e-postaların hiçbirinde hiçbir fark yoktur.) Yeni bir kullanıcı kayıt olur mu?
Kit Johnson

22

2018 ve sonrası kullanıcılar için:

WordPress 4.9.0'dan beri bunun için kullanabileceğiniz yeni filtreler var (artık bir eklentiye gerek yok):

Yönetici’ye gönderilen e-postada örnek kullanım (bunu temanızın işlevlerine yapıştırabilirsiniz. ):

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;
}

Alternatif olarak wp_new_user_notification_emailve wp_new_user_notification_email_adminfiltreleri kullanabilirsiniz . İlgilenenler kontrol edebilirsiniz tam dokümantasyon ve kaynak kodu için wp_new_user_notification().
Pete

Teşekkürler Pete, 4.9.0'da tanıtılmış gibi görünüyor ve daha iyi bir çözüm gibi görünüyor.
Edu Wass

3

Bu fonksiyonlar.php üzerinde çalışmayacak, bu kodu eklentinin içine koymanız gerekiyor.

Şimdi bunun için bir eklenti yapmak istemiyorsanız, sadece bu bağlantıyı kullanın.

burada bu fonksiyon formunun güncelleme kodunu almayı unutmayın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.