Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Номер телефона клиента в админке


Recommended Posts

Подскажите, кто понимает.
Стоит модуль simple для оформления заказов, в нем прописана маска +38(099)999-99-99.
В таком же виде, телефон и попадает в БД. Подскажите пожалуйста, как можно сделать, чтобы телефон записывался в формате +380999999999 не убирая маску для клиентов?

Надіслати
Поділитися на інших сайтах


Да надстроить в контроллере перед записью в бд

Надіслати
Поділитися на інших сайтах

До речі з маскою +38 (099) 999-99-99. роблять помилки частіше ніж з +380999999999

Надіслати
Поділитися на інших сайтах

24.09.2022 в 09:49, Seofisher сказал:

До речі з маскою +38 (099) 999-99-99. роблять помилки частіше ніж з +380999999999

В мене навпаки. В попередньому варіанті була маска саме +380999999999. 
Взагалі, проблема у пошуку замовлення за номером телефону. Частина записів у БД у форматі +380999999999, частина у +38 (099) 999-99-99.
Гадаю, що мабуть швидше поправити алгоритм пошуку, ніж як буде записаний номер телефону у БД.

Надіслати
Поділитися на інших сайтах


24.09.2022 в 12:09, Mistik сказал:

В мене навпаки. В попередньому варіанті була маска саме +380999999999. 
Взагалі, проблема у пошуку замовлення за номером телефону. Частина записів у БД у форматі +380999999999, частина у +38 (099) 999-99-99.
Гадаю, що мабуть швидше поправити алгоритм пошуку, ніж як буде записаний номер телефону у БД.

Який пошук по телефону? в мене стоїть доповнення пошук по телефону та email. То він шукае добре, йому все одно як номер вказаний, з дужками, дефісами..

Надіслати
Поділитися на інших сайтах

В 24.09.2022 в 12:31, Seofisher сказав:

Який пошук по телефону? в мене стоїть доповнення пошук по телефону та email. То він шукае добре, йому все одно як номер вказаний, з дужками, дефісами..

Якщо у Вас телефон збережений в базі в такому форматі 38099999999 то так не важливо як Ви вбиваєте в пошук номер, так як при пошуку зайві символи при запиті видаляє, а якщо номер збережений +38 (099) 999-99-99 то звісно не буде знаходити в базі номер при запиті.

 

В 24.09.2022 в 12:09, Mistik сказав:

Гадаю, що мабуть швидше поправити алгоритм пошуку, ніж як буде записаний номер телефону у БД.

Простіше при збереженні номера в базу видаляти всі зайві символи  із номера через str_replace 

Надіслати
Поділитися на інших сайтах


24.09.2022 в 13:04, Parallax сказал:

Якщо у Вас телефон збережений в базі в такому форматі +38099999999 то так не важливо як Ви вбиваєте в пошук номер, так як при пошуку зайві символи призапиті видаляє, а якщо номер збережений +38 (099) 999-99-99 то звісно не буде знаходити в базі номер призапиті.

по різному, з дужками і без збереженний в бд, але шукає номально

Надіслати
Поділитися на інших сайтах

В 24.09.2022 в 13:09, Seofisher сказав:

по різному, з дужками і без збереженний в бд, але шукає номально

Ну, значить у Вас просто краще реалізовано пошук телефона

Надіслати
Поділитися на інших сайтах


24.09.2022 в 13:04, Parallax сказал:

Простіше при збереженні номера в базу видаляти всі зайві символи  із номера через str_replace 

На жаль, я не розуміюся на таких правках. 
А блок пошуку, знайти вдалось, на багато простіше. 

 

public function getCustomers($data = array()) {
        $sql = "SELECT c.*, CONCAT(c.firstname, ' ', c.lastname) AS name, cgd.name AS customer_group FROM " . DB_PREFIX . "customer c LEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON (c.customer_group_id = cgd.customer_group_id) ";

        if (!empty($data['filter_name'])) {
            $sql .= " LEFT JOIN ".DB_PREFIX."address adr ON (adr.customer_id = c.customer_id) ";
        }

        $sql .= " WHERE cgd.language_id = '" . (int)$this->config->get('config_language_id') . "'";

        $implode = array();

        if (!empty($data['filter_name'])) {

            $filer_name_sql = '';
            $filer_name_sql .=  " ( CONCAT(c.firstname, ' ', c.lastname) LIKE '%" . $this->db->escape($data['filter_name']) . "%' ";
            $filer_name_sql .= " OR c.firstname LIKE '%" . $this->db->escape($data['filter_email']) . "%' ";
            $filer_name_sql .= " OR c.lastname LIKE '%" . $this->db->escape($data['filter_email']) . "%' ";
            $filer_name_sql .= " OR c.telephone LIKE '%" . $this->db->escape($data['filter_email']) . "%' ";
            $filer_name_sql .= " OR adr.firstname LIKE '%" . $this->db->escape($data['filter_email']) . "%' ";
            $filer_name_sql .= " OR adr.lastname LIKE '%" . $this->db->escape($data['filter_email']) . "%' ";
            $filer_name_sql .= " OR adr.address_1 LIKE '%" . $this->db->escape($data['filter_email']) . "%' ";
            $filer_name_sql .= " OR adr.address_2 LIKE '%" . $this->db->escape($data['filter_email']) . "%' ";
            $filer_name_sql .= " OR adr.city LIKE '%" . $this->db->escape($data['filter_email']) . "%' ";
            $filer_name_sql .= " OR adr.postcode LIKE '%" . $this->db->escape($data['filter_email']) . "%' ";
            $filer_name_sql .= " ) ";

Якщо можете, підкажіть будь ласка, як змінити параметр пошуку, щоб по c.telephone, щукало без урахування символів "(", ")", "-".

Надіслати
Поділитися на інших сайтах


В 26.09.2022 в 14:03, Mistik сказав:

Якщо можете, підкажіть будь ласка

Можете якось так прописати пошук

 $filer_name_sql .= " REPLACE(REPLACE(REPLACE(REPLACE(c.telephone,'-',''), '(',''),')',''),' ','') LIKE '%" . $this->db->escape(preg_replace("/[^,.0-9]/", '',$data['filter_telephone'])) . "%'";

PS: даний код не перевірявся

Надіслати
Поділитися на інших сайтах


26.09.2022 в 16:42, Parallax сказал:

Можете якось так прописати пошук

 $filer_name_sql .= " REPLACE(REPLACE(REPLACE(REPLACE(c.telephone,'-',''), '(',''),')',''),' ','') LIKE '%" . $this->db->escape(preg_replace("/[^,.0-9]/", '',$data['filter_telephone'])) . "%'";

PS: даний код не перевірявся

на жаль, не працює
шукаю далі, але все одно, дякую

Надіслати
Поділитися на інших сайтах


		$for_phone = implode('',str_split(preg_replace("/[^0-9]/", '', $phone)));
if ($for_phone) {		
		$sql ="SELECT COUNT(*) as total FROM " . DB_PREFIX . "order WHERE 
		REPLACE(
			REPLACE(
				REPLACE(
					REPLACE(telephone,')',''),
					'(',''),
				'-',''),
			' ','')
		LIKE '%" . $this->db->escape($for_phone) . "%' 

 

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...
В 23.09.2022 в 17:46, Mistik сказав:

Подскажите, кто понимает.
Стоит модуль simple для оформления заказов, в нем прописана маска +38(099)999-99-99.
В таком же виде, телефон и попадает в БД. Подскажите пожалуйста, как можно сделать, чтобы телефон записывался в формате +380999999999 не убирая маску для клиентов?

 

В 24.09.2022 в 09:49, Seofisher сказав:

До речі з маскою +38 (099) 999-99-99. роблять помилки частіше ніж з +380999999999


А еще лучше сделать +38(999)999-99-99
По практике уже видел кучу прекрастных номеров +38(009)999-99-99
И потом ищи клиента)))

Надіслати
Поділитися на інших сайтах

14.10.2022 в 20:33, Ecolotos сказал:

 


А еще лучше сделать +38(999)999-99-99
По практике уже видел кучу прекрастных номеров +38(009)999-99-99
И потом ищи клиента)))

на практиці, меньше всього помилок буде якщо зовсім маску забрати

Надіслати
Поділитися на інших сайтах

В 17.10.2022 в 14:38, Seofisher сказав:

на практиці, меньше всього помилок буде якщо зовсім маску забрати

В моему случае маска +38(999)999-99-99 работает четко)

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.