Регистрация
Вход через соцсети
Восстановление пароля

Быстрая регистрация пользователей интернет-магазинов   Партнерский модуль

бесплатно
Скачать
promo
Наверняка многие видели в современных интернет-магазинах возможность создать себе как новичку аккаунт прямо при оформлении заказа, не прерывая процедуру оформления. Идея хорошая, но в стандартной поставке NetCat это, к сожалению не реализовано - приходится проходить полную процедуру регистрации, по окончании которой можно и вовсе забыть, зачем ты сюда пришел и что хотел купить. улыбка
Решение, разработанное нашей компанией, позволяет устранить этот недостаток.

Для этого нужно:
1. В файл /netcat/modules/default/function.inc.php добавить содержимое прилагаемого файла welpis_autoreg.inc (в нем содержится функция создания аккаунта на основе емайл, а также функция генерации паролей).
2. Идем в форму добавления заказа Вашего интернет-магазина (не имеет значения, стандартный компонент "интернет-магазин" это, или "минимагазин"), и в ней в самом начале прописываем примерно следующее:
Код:

";
if( isset($_POST['n2cr']) && $_POST['n2cr']==1 && isset($_POST['newemail']) ) {
if(strpos($_POST['newemail'],'@')===false || strlen($_POST['newemail'])<4 || !preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $_POST['newemail']))
{
$result .= "<p style='color:red;'><b>Ошибка! Неправильно указан E-mail.</b></p>";
} else { // если правильный емайл START
$uid=intval($db->get_var("select User_ID from User where Email='".mysql_real_escape_string($newemail)."' limit 1"));
if(!$uid) {
$newuid=welpis_newemailaccount($_POST['newemail']); // создаем аккаунт, отправляем письмо юзеру
if($newuid) { // если аккаунт создался - авторизуем
Authorize($newuid);
}
else {
echo "<p style='color:red;'>Ошибка регистрации!</p>";
}
}
else {
echo "<p style='color:red;'>Такой пользователь уже существует! Если это ваш e-mail, и вы не знаете свой пароль, то воспользуйтесь ссылкой восстановления пароля.</p>";
}
} // если правильный емайл END
}

$addForm .= "
<!-- здесь выводим стандартную неткатовскую форму авторизации в случае, если у пользователя уже есть логин, а если пользователь нажимает вариант, что он в магазине впервые, тогда ему выводится такая форма регистрации новичка: -->
<!-- форму регистрации новичка выводим только если юзер не авторизован: -->
".(!$current_user['User_ID']?"
<form action='' method='post' onsubmit='if(newemail.value==\"\") {alert(\"Укажите ваш электронный адрес!\");return false;}'>
Ваш e-mail: <input type='text' name='newemail' /><br />
<span style='font-size:9px;'>На указанный адрес будет выслан логин и пароль для осуществления покупок в нашем интернет-магазине.</span><br />
<input type='hidden' name='n2cr' value='1' />
<button type='submit'>Авторизоваться</button>
</form>
":NULL)."
бесплатно

Комментарии 6

sparton  Шекера Евгений 19 марта 2013, 13:55:49
Я за то, чтобы регистрировать пользователя "втихаря", чтобы его мозг совсем ни о чем не думал. Действия по регистрации производитель после размещения заказа, и затем привязывать сделанный заказ к созданному либо уже существующему пользователю.
CP  Yury 04 апреля 2013, 16:57:05
Хорошая идея.
+ текстовый ID/логин менять внутри профиля.
Nexwich  Панасин Александр 19 августа 2013, 11:50:47
И на почту высылать о том что он зарегистрирован, заказ может посмотреть там то и логин пароль такой то
Ну да, это обязательно. Описанный здесь модуль такое письмо отправляет, правда без ссылки на заказ, но это легко допилить. :)
Владимир 17 марта 2014, 16:55:36
А подскажите, пожалуйста, как сделать так, чтобы при автоматической регистрации, помимо адреса e-mail также спрашивалась и записывалась в систему другая информация о пользователе? Например Имя и Фамилия и ещё регистрировать пользователей в разных группах, в зависимости от выбранных параметров в форме регистрации? спасибо
Какой-то универсальный совет здесь дать сложновато, надо рассматривать ваш случай индивидуально.
Общая схема такая:
1. Помимо логина добавляете в тег <form> еще другие нужные вам поля
2. В функцию welpis_newemailaccount передавайте значения этих полей и в самой функции сделайте обработку этих переменных, чтобы они должным образом экранировались и записывались в таблицу User.
3. В этой же функции найти строчку:
[CODE]$db->query("insert into User_Group set User_ID='$newUserID',PermissionGroup_ID=2");
[/CODE]
и продублировать эту строчку для всех других групп, указывая вместо двойки другое число (номер группы, в которую нужно включить человека). Если хотите включать в разные группы в зависимости от того, что введено в форме - анализируйте нужные вам переменные из формы и делайте нужный вам insert в зависимости от этого параметра.
оставить комментарий
Описание проекта