mike
  • 0
Гуру

Как изменить регистрационный адрес электронной почты по умолчанию? (плагин и/или не плагин)

  • 0

После регистрации нового пользователя WP отправляет электронное письмо с логином/паролем и ссылкой на страницу входа.

Есть ли способ изменить этот шаблон электронной почты по умолчанию? Я также хотел бы изменить тему и отправителя.

Изменить. Для всех, кто заинтересован, вот решение плагина.

Share
  1. Электронная почта нового пользователя отправляется с помощью 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);
    
        }
    }
    

    Примечание. Переопределение подключаемых функций невозможно в файле functions.php темы. К этому моменту подключаемый файл WP уже загружен, поэтому функция будет определена WP (т. е. по умолчанию). Ваша пользовательская версия должна загрузиться, прежде чем это произойдет, что означает, что вы должны загрузить ее в файл пользовательского плагина.

    • 0
  2. Для пользователей 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;
    }
    
    • 0

Оставить ответ

You must login to add an answer.