+ // Get the first element in $users by using `reset` function just in case $users is changed
+ // in 'SpecialPasswordResetOnSubmit' hook.
+ $firstUser = reset( $users ) ?? null;
+
+ $requireEmail = $this->config->get( 'AllowRequiringEmailForResets' )
+ && $method === 'username'
+ && $firstUser
+ && $firstUser->getBoolOption( 'requireemail' );
+ if ( $requireEmail && ( $email === '' || !Sanitizer::validateEmail( $email ) ) ) {
+ // Email is required, and not supplied or not valid: pretend everything's fine.
+ return StatusValue::newGood();
+ }
+