Queue a “Set your password” email when a logged-out visitor signs up
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 );
Hooks Used
-
benecaster_subscribe_user_created