Post by drmodjo » Thu Mar 21, 2019 5:30 pm

Привет всем.
Есть такая нужда, чтобы номер телефона при регистрации проверялся по базе (как email), дабы не было дубликатов. Подскажите пожалуйста в каких файлах и что добавить. Заранее благодарю. (OpenCart 2.3.0.2, стандартный шаблон)

Newbie

Posts

Joined
Thu Mar 21, 2019 5:22 pm

Post by Linkwolf Develop » Wed Apr 24, 2019 8:44 pm

Здравствуйте!

1. Открываем: catalog / controller / account / register.php
После строчки

Code: Select all

		
if ((utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) {
	$this->error['telephone'] = $this->language->get('error_telephone');
}
Добавляем:

Code: Select all

if ($this->model_account_customer->getTotalCustomersByTelephone($this->request->post['telephone'])) {
	$this->error['warning'] = $this->language->get('error_exists_tel');
}
2. Открываем: catalog / model / account / customer.php
После функции:

Code: Select all

public function getTotalCustomersByEmail($email) {
Добавляем:

Code: Select all

public function getTotalCustomersByTelephone($telephone) {
	$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE LOWER(telephone) = '" . $this->db-		>escape(utf8_strtolower($telephone)) . "'");
	return $query->row['total'];
}
3. Последний шаг. Открываем (en-gb/ru-ru) / account / register.php
В // Error
Добавляем:

Code: Select all

$_['error_exists_tel']         = 'Warning: Telephone is already registered!';
Либо:

Code: Select all

$_['error_exists_tel']         = 'Такой телефон уже зарегистрирован!';

User avatar

Posts

Joined
Wed Aug 22, 2018 5:56 pm


Post by DMax30 » Thu Sep 10, 2020 12:22 am

К сожалению, этот способ не проверяет номер телефона на дубликат в OpenCart 3

Newbie

Posts

Joined
Tue Sep 08, 2020 1:46 am
Who is online

Users browsing this forum: No registered users and 8 guests