Як змінити електронну адресу реєстрації за замовчуванням? (плагін та / або не-плагін)


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-функции.php для надсилання електронного листа з повідомленнями.
Сисір

Багатовузлових використовує wpmu_signup_user_notificationя думаю.
Wyck

Цій відповіді є кілька років. Прийнята відповідь не працює для мене. (Додавання його до function.php не має жодних змін до жодного електронного листа, надісланого при реєстрації нового користувача.) Чи слід розміщувати нове запитання?
Кіт Джонсон

22

Для 2018 року і далі користувачів:

Оскільки в WordPress 4.9.0 є нові фільтри, які ви можете використовувати для цього (більше не потрібно плагін):

Приклад використання електронної пошти, надісланої адміністратору (ви можете вставити це у function.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_emailі wp_new_user_notification_email_adminфільтри. Бажаючі можуть перевірити всю документацію і вихідний код для wp_new_user_notification().
Піт

Дякую Піту, схоже, це було введено в 4.9.0 і виглядає як краще рішення.
Еду Васс

3

Це не працюватиме на function.php, вам потрібно ввести цей код у плагін.

якщо ви зараз не робите плагін для цього, просто скористайтеся цим посиланням

не забудьте взяти код оновлення цього засобу форми тут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.