# Custom Welcome Email for New Users

> Rewrites the email new users receive with their login details, using your own subject and greeting while keeping the secure link to set a password.

- Type: PHP
- Runs: Run everywhere
- Category: [Email](https://wpide.com/library/category/email/)
- Tags: email, users, registration, welcome
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/email-custom-welcome/

## Code

```php
add_filter( 'wp_new_user_notification_email', function ( $email, $user, $blogname ) {
    if ( ! preg_match( '#(https?://\S+action=rp\S+)#', $email['message'], $match ) ) {
        return $email;
    }

    $set_password_url = rtrim( $match[1], '>' );

    $email['subject'] = sprintf( 'Welcome to %s', $blogname );
    $email['message'] = sprintf( "Hi %s,\n\n", $user->display_name ? $user->display_name : $user->user_login )
        . sprintf( "Thanks for joining %s. Your username is: %s\n\n", $blogname, $user->user_login )
        . "Set your password here:\n" . $set_password_url . "\n\n"
        . 'Log in any time at ' . wp_login_url() . "\n\n"
        . "See you soon!\n";

    return $email;
}, 10, 3 );
```

## Notes

Keep the $set_password_url line in the message, otherwise users cannot set their password.

## How to use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Custom Welcome Email for New Users" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
