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


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.