Skip to main content

Queue a “Set your password” email when a logged-out visitor signs up

Free Intermediate Since v1.0.0

SubscribeController fires benecaster_subscribe_user_created( int $user_id, string $email ) immediately after wp_create_user() succeeds for a guest signup, before the subscription row is written and before the feed token is generated. The controller intentionally does not send a welcome email itself so add-ons own the template. For post-token work, hook benecaster_token_generated instead.

Code

<?php
add_action( 'benecaster_subscribe_user_created', function ( int $user_id, string $email ): void {
    $user = get_user_by( 'id', $user_id );
    if ( ! $user ) {
        return;
    }
    $key  = get_password_reset_key( $user );
    $link = add_query_arg(
        [ 'action' => 'rp', 'key' => $key, 'login' => rawurlencode( $user->user_login ) ],
        wp_login_url()
    );
    wp_mail(
        $email,
        __( 'Set your password', 'my-addon' ),
        sprintf( __( "Welcome! Set your password here:\n%s", 'my-addon' ), $link )
    );
}, 10, 2 );

View on GitHub →

Hooks Used

  • benecaster_subscribe_user_created