Битрикс проверить зарегистрирован ли пользователь

Для того чтобы проверить наличие пользователя в системе нужно сделать скрытый AJAX запрос.

Как проверить есть ли уже пользователя в Битриксе

Проверять будем по email-адресу. Его и будем передавать. Это может быть форма обратной связи, окно авторизации или даже оформление заказа.
Давайте напишем код:

if (!$USER->IsAuthorized()):
endif;

Весь код можно поместить между этой проверкой — зачем нам проверять авторизованных? 🙂
Пишем далее запрос на jQuery, и передаем значение из поля:

$('body').on('blur', '#soa-property-2', function(){
	var $val = $(this).val();
	if ($val != false) {
		$.ajax({
			url: '/local/templates/template.2020/components/bitrix/sale.order.ajax/order/ajax_email_check.php',
			type: 'post',
			cache: false,
			data: {'email': $val},
		}).done(function(data){
			if (data != false)
				alert('Ваш email уже есть в базе. Пожалуйста, авторизуйтесь!');
		}).error(function(){
			console.log('There was an error');
		});
	}
	return false;
});

Этот код сработает, когда вы перестанете вводить емейл и перейдете к другому полю.
#soa-property-2 — id нашего input.

Теперь посмотрим как выглядит код получения емейла из базы:


require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

$email = $_REQUEST['email'];
$filter = Array("=EMAIL" => $email);
$sql = CUser::GetList(($by="id"), ($order="desc"), $filter);
if($sql->NavNext(true, "f_"))
{
	$id_user = $f_ID;
	echo $id_user;
}

Возвращаем ID если он есть. Таким образом, можно проверить зарегистрирован ли пользователь у вас на сайте, и, например, попросить его пройти авторизацию, вместо дублирования данных. Стандартно в Битриксе такого механизма (насколько я знаю) нет, но он бы очень пригодился.

А как бы вы использовали такую проверку на проектах?

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *