Перейти к содержанию
Официальный форум поддержки Simpla

Дополнительное поле при регистрации пользователя


Рекомендуемые сообщения

Вопрос простой. Почему разработчики об этом не подумали?
Нужно создать поле "Телефон" в карточку покупателя. Очень неудобно иметь 2 базы и при каждом звонке искать телефон в базе телефонов.

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 118
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Изображения в теме

Добавляем в таблицу s_users поле phone с типом varchar длиной 20.
Далее в /view/RegisterView.php после
вместо

elseif($user_id = $this->users->add_user(array('name'=>$name, 'email'=>$email, 'password'=>$password, 'enabled'=>$default_status)))

пишем

elseif($user_id = $this->users->add_user(array('name'=>$name, 'email'=>$email, 'password'=>$password, 'enabled'=>$default_status, 'phone'=>$this->request->post('phone'))))

в /api/Users.php вместо

$query = $this->db->placehold("SELECT u.id, u.email, u.password, u.name, u.group_id, u.enabled, u.phone, g.discount FROM __users u
LEFT JOIN __groups g ON u.group_id=g.id
WHERE 1 $group_id_filter $keyword_filter ORDER BY u.name $sql_limit");

пишем

$query = $this->db->placehold("SELECT u.*, g.discount FROM __users u
LEFT JOIN __groups g ON u.group_id=g.id
WHERE 1 $group_id_filter $keyword_filter ORDER BY u.name $sql_limit");

далее в /view/UserView.php вместо

elseif($user_id = $this->users->update_user($this->user->id, array('name'=>$name, 'email'=>$email)))

пишем

elseif($user_id = $this->users->update_user($this->user->id, array('name'=>$name, 'email'=>$email, 'phone'=>$this->request->post('phone'))))

после

$this->design->assign('email', $this->user->email);

пишем

$this->design->assign('phone', $this->user->phone);

после

$this->design->assign('email', $this->user->email);

пишем

$this->design->assign('phone', $this->user->phone);

В /simpla/UserAdmin.php
после

$user->email = $this->request->post('email');

пишем

$user->phone = $this->request->post('phone');

Включим поиск по телефону. В /simpla/search_users.php
вместо

$simpla->db->query('SELECT u.id, u.name, u.email FROM __users u WHERE u.name LIKE "%'.mysql_real_escape_string($keyword).'%" OR u.email LIKE "%'.mysql_real_escape_string($keyword).'%"ORDER BY u.name LIMIT ?', $limit);

пишем

$simpla->db->query('SELECT u.* FROM __users u WHERE u.name LIKE "%'.mysql_real_escape_string($keyword).'%" OR u.email LIKE "%'.mysql_real_escape_string($keyword).'%" OR u.phone LIKE "%'.mysql_real_escape_string($keyword).'%" ORDER BY u.name LIMIT ?', $limit);

в /simpla/design/html/user.tpl
после

<li><label class=property>Email</label><input name="email" class="simpla_inp" type="text" value="{$user->email|escape}" /></li>

пишем

<li><label class=property>Телефон</label><input name="phone" class="simpla_inp" type="text" value="{$user->phone|escape}" /></li>

в /simpla/design/html/users.tpl
после

<div class="user_email cell">
<a href="mailto:{$user->name|escape}<{$user->email|escape}>">{$user->email|escape}</a>
</div>

добавляем

<div class="cell">
{$user->phone|escape}
</div>

И на следующей строке вместо

<div class="user_group cell">

пишем

<div class="cell">

В админке пользователей вывели.
Далее открываем /design/default/html/user.tpl и после

<input data-format="email" data-notice="Введите email" value="{$email|escape}" name="email" maxlength="255" type="text"/></td>

пишем

<label>Телефон</label>
<input data-format=".+" data-notice="Введите телефон" value="{$phone|escape}" name="phone" maxlength="20" type="text"/>

Далее открываем /design/default/html/register.tpl и после

<input type="text" name="email" data-format="email" data-notice="Введите email" value="{$email|escape}" maxlength="255" />

пишем

<label>Телефон</label> <input type="text" name="phone" data-format=".+" data-notice="Введите телефон" value="{$phone|escape}" maxlength="20" />

Вроде все. У меня работает.

Ссылка на сообщение
Поделиться на другие сайты

beagler
Спасибо большое.

Работает, только вот когда человек регистрируется и переходит в кабинет, там поле телефона пустое!

И как сделать, когда клиент залогинен и он переходит в корзину для оформления заказа, автоматически заполнялось поле телефон в форме заказа?

Ссылка на сообщение
Поделиться на другие сайты

Вот сам поковырялся с базой. Нельзя же так сильно упрощать систему! В базе нет контактных данных о клиенте... Потом полез в админку/сайт и правда, при регистрации вводить контактные данные не нужно.
Это же интернет магазин, клиент - самое главное звено!

Ссылка на сообщение
Поделиться на другие сайты

Danya
1.Странно, когда я захожу в кабинет - телефон есть.
2. Нужно в /view/CartView.php после

$this->design->assign('email', $this->user->email);

добавить

$this->design->assign('phone', $this->user->phone);
Ссылка на сообщение
Поделиться на другие сайты

beagler

Спасибо большое! Добавил, заработало!

По поводу вывода номера телефона в кабинете, я добавил поле в файле UserView.php после:

$this->design->assign('email', $this->user->email);

добавляем:

$this->design->assign('phone', $this->user->phone);
Ссылка на сообщение
Поделиться на другие сайты

А что тут делать, в шаблоне регистрации добавить поле номер телефона и создать строку в таблице БД, а для отображения в админке номера телефона, откорректируйте файл шаблона админки

Ссылка на сообщение
Поделиться на другие сайты
  • 5 недель спустя...

По поводу поиска в админке по номеру телефона. Версия 2.1
код поиска такой

// Поиск		$keyword = $this->request->get('keyword', 'string');		if(!empty($keyword))		{			$filter['keyword'] = $keyword;			$this->design->assign('keyword', $keyword);		}


что добавить???
Спасибо заранее!!!
Ссылка на сообщение
Поделиться на другие сайты

beagler

Версия Simpla 2.0.2

По поводу поиска в админке по номеру телефона, у меня файла

/simpla/search_users.php

нет!

есть

/simpla/ajax/search_users.php


изменяю код, но поиск по номеру не работает.
Ссылка на сообщение
Поделиться на другие сайты

Для того чтобы добавить поля к заполнению(индекс, город, и т.п) в корзине надо их прописать в CartView.php? или надо будет еще что то прописывать в базе данных sql , и если прописывать то что именно?
Заранее извиняюсь за нубский вопрос, и заранее спасибо!

Ссылка на сообщение
Поделиться на другие сайты

filth
Danya

в файле api/Users.php замените строку

$keyword_filter .= $this->db->placehold('AND u.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR u.email LIKE "%'.mysql_real_escape_string(trim($keyword)).'%"');


на

$keyword_filter .= $this->db->placehold('AND u.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR u.email LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR u.phone LIKE "%'.mysql_real_escape_string(trim($keyword)).'%"');

для 2.1 после этого поиск будет работать в том числе и по телефону
Ссылка на сообщение
Поделиться на другие сайты

Было бы круто в настройках сделать вкладку формы) вообще супер) Чтобы разные формы создавать можно было, обратная связь, отправить файл...

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

Подскажите, пожалуйста - у меня необязательно поле E-Mail, а телефон - обязательное. В RegisterView.php я заменил

elseif(empty($email))
$this->design->assign('error', 'empty_email');

на

elseif(empty($phone))
$this->design->assign('error', 'empty_phone');

плюс в register.tpl заменил

{elseif $error == 'empty_email'}Введите E-Mail

на

{elseif $error == 'empty_phone'}Введите телефон

Но, при когда регистрируюсь, мне пишет "введите телефон"... где то еще надо поправить?

Ссылка на сообщение
Поделиться на другие сайты

Может это?

в /view/RegisterView.php после
вместо
elseif($user_id = $this->users->add_user(array('name'=>$name, 'email'=>$email, 'password'=>$password, 'enabled'=>$default_status)))



пишем

elseif($user_id = $this->users->add_user(array('name'=>$name, 'email'=>$email, 'password'=>$password, 'enabled'=>$default_status, 'phone'=>$this->request->post('phone'))))
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...