Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


 Погделиться

Рекомендованные сообещёния

Подскажите, кто понимает.
Стоит модуль 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 негдели спустя...
В 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 рилииет четко)

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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

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

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.