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