Überprüfung, ob es einen oder mehrere Benutzer mit der angegebenen E-Mail-Adresse gibt

Zur Verwendung in beispielsweise der Benutzerregistrierung oder in eigenen Scripten
require_once($_SERVER['DOCUMENT_ROOT'] . '/weblication/grid.php');

/**
 * @param array  $options
 * @param string $email
 * @return bool
 */
function checkIfUserWithEmailExists( string $email, array $options = [] ): bool {

    if( empty( $email ) ) {
        return false;
    }

    if( array_key_exists( 'clearIndex', $options ) && $options['clearIndex'] === true ) {
        wUsers::clearIndexUsers();
    }

    $usersQuery = [];
    $usersQuery['filterset'] = [ 'type' => 'or' ];
    $usersQuery['filterset'][] = [ 'wPath' => '/wUser/email/@value', 'operator' => '==', 'condition' => $email ];

    if( array_key_exists( 'considerAdditionalEmailFields', $options ) && $options['considerAdditionalEmailFields'] === true ) {
        $usersQuery['filterset'][] = [ 'wPath' => '/wUser/email[@class="private"]/@value', 'operator' => '==', 'condition' => $email ];
        $usersQuery['filterset'][] = [ 'wPath' => '/wUser/email[@class="business"]/@value', 'operator' => '==', 'condition' => $email ];
    }

    $users = wUsers::selectUsers( $usersQuery );

    return !empty( $users );

}

// usage
checkIfUserWithEmailExists( 
    'email@domain.dd', 
    [ 
        'clearIndex' => true, 
        'considerAdditionalEmailFields' => true 
    ] 
);