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 ] );