Страница 1 из 2
Обязательное поле "Номер телефона" вместо "Email"
Добавлено: 11.09.2017, 10:18
makki
Все замечания учтены. Работоспособность проверена. Только OkayCMS 2Мое скромное мнение, что на странице оформления заказа для незарегистрированных пользователей нет смысла делать обязательным поле Email. Вместо этого лучше сделать обязательным поле "Номер телефона", а Email - опциональным. Если E-mail заполнено, покупатель получает уведомление о заказе, в противном случае - нет.
Сделал и решил поделиться.
1) В файле design/ваш_шаблон/html/scripts.tpl находим строку
и меняем содержимое условия if на следующее
Код: Выделить всё
$(".fn_validate_cart").validate({
rules: {
name: "required",
phone: "required",
email: {
// required: true,
email: true
},
captcha_code: "required"
},
messages: {
name: form_enter_name,
phone: form_enter_phone,
//email: form_enter_email,
captcha_code: form_error_captcha
}
});
2) В файле view/CartView.php
2.1) в блоке /*Валидация данных клиента*/ вместо строки
Код: Выделить всё
} elseif(!$this->validate->is_email($order->email, true)) {
пишем
Код: Выделить всё
} elseif(!empty($order->email) && !$this->validate->is_email($order->email)) {
2.2) вместо
Код: Выделить всё
} elseif(!$this->validate->is_phone($order->phone)) {
пишем
Код: Выделить всё
} elseif(!$this->validate->is_phone($order->phone, true)) {
2.3) Чтобы отменить отправку уведомления о заказе покупателю, если поле Email не заполнено, вместо
Код: Выделить всё
$this->notify->email_order_user($order->id);
пишем
Код: Выделить всё
if(!empty($order->email)) {
$this->notify->email_order_user($order->id);
}
3) В файле design/ваш_шаблон/html/cart.tpl убираем символ * в поле Email и добавляем в поле Номер Телефона
3.1) Вместо
Код: Выделить всё
<input class="form_input" name="email" type="text" value="{$email|escape}" data-language="form_email" placeholder="{$lang->form_email}*">
пишем
Код: Выделить всё
<input class="form_input" name="email" type="text" value="{$email|escape}" data-language="form_email" placeholder="{$lang->form_email}">
3.2) Вместо
Код: Выделить всё
<input class="form_input" name="phone" type="text" value="{$phone|escape}" data-language="form_phone" placeholder="{$lang->form_phone}">
Пишем
Код: Выделить всё
<input class="form_input" name="phone" type="text" value="{$phone|escape}" data-language="form_phone" placeholder="{$lang->form_phone}*">
Добавлено: 11.09.2017, 11:33
korshunov
Отлично, отлично! Простенько и со вкусом!
Добавлено: 02.12.2017, 23:01
giv4ik90
Здравствуйте!
Еще чтобы номер телефона был обязательным для ввода можно:
2) В файле view/CartView.php
2.2) в блоке /*Валидация данных клиента*/ вместо строки:
Код: Выделить всё
} elseif(!$this->validate->is_phone($order->phone)) {
$this->design->assign('error', 'empty_phone');
пишем
Код: Выделить всё
} elseif(!$this->validate->is_phone($order->phone, true)) {
$this->design->assign('error', 'empty_phone');
Добавлено: 24.01.2018, 18:06
kassio
makki, Не могли бы вы сделать эти действия для меня? Сам не осилю, а работу оплачу.
Добавлено: 24.01.2018, 18:44
makki
Написал в личку
Добавлено: 23.07.2018, 06:52
miki
makki писал(а):и меняем содержимое условия if на следующее
КОД: ВЫДЕЛИТЬ ВСЁ
$(".fn_validate_cart").validate({
rules: {
name: "required",
phone: "required",
//email: {
// required: true,
// email: true
//},
captcha_code: "required"
},
messages: {
name: form_enter_name,
phone: form_enter_phone,
//email: form_enter_email,
captcha_code: form_error_captcha
}
});
При этом, я так понимаю, если закомментировать только строчку required: true, то форма будет проверять email на правильность, если пользователь решил его все-таки ввести, оставляя его ввод опциональным изначально.
Добавлено: 24.07.2018, 06:08
makki
miki писал(а):При этом, я так понимаю, если закомментировать только строчку required: true, то форма будет проверять email на правильность, если пользователь решил его все-таки ввести, оставляя его ввод опциональным изначально.
Да, если оставить проверку как в коде ниже, тогда будет проверка на стороне клиента помимо проверки на стороне сервера.
Код: Выделить всё
$(".fn_validate_cart").validate({
rules: {
name: "required",
phone: "required",
email: {
// required: true,
email: true
},
captcha_code: "required"
},
messages: {
name: form_enter_name,
phone: form_enter_phone,
//email: form_enter_email,
captcha_code: form_error_captcha
}
});
Добавлено: 11.12.2019, 19:55
Artem-K
Всмем
makki писал(а):Мое скромное мнение, что на странице оформления заказа для незарегистрированных пользователей нет смысла делать обязательным поле Email. Вместо этого лучше сделать обязательным поле "Номер телефона", а Email - опциональным. Если E-mail заполнено, покупатель получает уведомление о заказе, в противном случае - нет.
Сделал и решил поделиться.
1) В файле design/ваш_шаблон/html/scripts.tpl находим строку
и меняем содержимое условия if на следующее
Код: Выделить всё
$(".fn_validate_cart").validate({
rules: {
name: "required",
phone: "required",
//email: {
// required: true,
// email: true
//},
captcha_code: "required"
},
messages: {
name: form_enter_name,
phone: form_enter_phone,
//email: form_enter_email,
captcha_code: form_error_captcha
}
});
2) В файле view/CartView.php
2.1) в блоке /*Валидация данных клиента*/ вместо строки
Код: Выделить всё
} elseif(!$this->validate->is_email($order->email, true)) {
пишем
Код: Выделить всё
} elseif(!empty($order->email) && !$this->validate->is_email($order->email)) {
2.2) вместо
Код: Выделить всё
} elseif(!$this->validate->is_phone($order->phone)) {
пишем
Код: Выделить всё
} elseif(!$this->validate->is_phone($order->phone, true)) {
2.3) Чтобы отменить отправку уведомления о заказе покупателю, если поле Email не заполнено, вместо
Код: Выделить всё
$this->notify->email_order_user($order->id);
пишем
Код: Выделить всё
if(!empty($order->email)) {
$this->notify->email_order_user($order->id);
}
3) В файле design/ваш_шаблон/html/cart.html убираем символ * в поле Email и добавляем в поле Номер Телефона
3.1) Вместо
Код: Выделить всё
<input class="form_input" name="email" type="text" value="{$email|escape}" data-language="form_email" placeholder="{$lang->form_email}*">
пишем
Код: Выделить всё
<input class="form_input" name="email" type="text" value="{$email|escape}" data-language="form_email" placeholder="{$lang->form_email}">
3.2) Вместо
Код: Выделить всё
<input class="form_input" name="phone" type="text" value="{$phone|escape}" data-language="form_phone" placeholder="{$lang->form_phone}">
Пишем
Код: Выделить всё
<input class="form_input" name="phone" type="text" value="{$phone|escape}" data-language="form_phone" placeholder="{$lang->form_phone}*">
Всем привет! А кто-нибудь знает, как все это осуществить в третей версии?)
Добавлено: 15.03.2021, 21:36
misterErr
Всем привет! А кто-нибудь знает, как все это осуществить в третей версии?)
Задание невыполнимо для третей версии? или может модуль за несколько тис есть?
Обязательное поле "Номер телефона" вместо "Email"
звучит как анекдот:) но! okay-cms это реальность))
Добавлено: 16.03.2021, 06:33
korshunov
Выполнимо.
Есть модуль есть очень похожий. И даже бесплатный:
https://okay-cms.com/products/simplamarket_email_not_requiredМодуль по ссылке делает лишь email необязательным. Если же надо непременно обязательным сделать поле телефон, то дорабатывать надо. Кстати говоря, указанный модуль существует довольно давно, у него уже 4 версии вышло. С учетом простоты задачи это говорит о том, что совсем нелегко модули создавать.
Добавлено: 16.03.2021, 16:17
OkayCMS
korshunov писал(а):Выполнимо.
Есть модуль есть очень похожий. И даже бесплатный:
https://okay-cms.com/products/simplamarket_email_not_requiredМодуль по ссылке делает лишь email необязательным. Если же надо непременно обязательным сделать поле телефон, то дорабатывать надо. Кстати говоря, указанный модуль существует довольно давно, у него уже 4 версии вышло. С учетом простоты задачи это говорит о том, что совсем нелегко модули создавать.
В комментариях вы можете увидеть что последние две версии - это просто оптимизация модуля и обновление его до актуальной версии системы. Первая версия - это создание модуля, вторая, обновление до актуальной версии системы на тот момент и его фиксы. Не понимаю, почему это показывает что модули создавать нелегко.
Добавлено: 17.03.2021, 06:55
виктор
OkayCMS писал(а):korshunov писал(а):Выполнимо.
Есть модуль есть очень похожий. И даже бесплатный:
https://okay-cms.com/products/simplamarket_email_not_requiredМодуль по ссылке делает лишь email необязательным. Если же надо непременно обязательным сделать поле телефон, то дорабатывать надо. Кстати говоря, указанный модуль существует довольно давно, у него уже 4 версии вышло. С учетом простоты задачи это говорит о том, что совсем нелегко модули создавать.
В комментариях вы можете увидеть что последние две версии - это просто оптимизация модуля и обновление его до актуальной версии системы. Первая версия - это создание модуля, вторая, обновление до актуальной версии системы на тот момент и его фиксы. Не понимаю, почему это показывает что модули создавать нелегко.
а вы уверены, что для того что бы исправить ошибки нужно ставить новый модуль? может логичнее делать сразу правильно?
Добавлено: 17.03.2021, 10:39
OkayCMS
виктор писал(а):OkayCMS писал(а):
В комментариях вы можете увидеть что последние две версии - это просто оптимизация модуля и обновление его до актуальной версии системы. Первая версия - это создание модуля, вторая, обновление до актуальной версии системы на тот момент и его фиксы. Не понимаю, почему это показывает что модули создавать нелегко.
а вы уверены, что для того что бы исправить ошибки нужно ставить новый модуль? может логичнее делать сразу правильно?
Если вы знаете хотя бы один продукт, который сделали сразу правильно и никогда не улучшали - покажите мне его.
Добавлено: 17.03.2021, 12:23
sergeevizh
ох, а сделать бы еще проверку номера телефона по смс, цены ценной OkayCMS не было =)
Добавлено: 17.03.2021, 13:58
OkayCMS
sergeevizh писал(а):ох, а сделать бы еще проверку номера телефона по смс, цены ценной OkayCMS не было =)
А за смс кто платить будет?
Добавлено: 17.03.2021, 14:01
виктор
OkayCMS писал(а):виктор писал(а):а вы уверены, что для того что бы исправить ошибки нужно ставить новый модуль? может логичнее делать сразу правильно?
Если вы знаете хотя бы один продукт, который сделали сразу правильно и никогда не улучшали - покажите мне его.
окай - отличная цмс, я с этим не спорю. но ведь этот вопрос идет со второй версии, темы на форуме тому доказательства. у меня на сайте сделала сначала симпла потом техподдержка. но сейчас еще два сайта запустил на 4 окае и все начинать по новой. когда же телефон станет главнее имейла?
Добавлено спустя 46 секунд:sergeevizh писал(а):ох, а сделать бы еще проверку номера телефона по смс, цены ценной OkayCMS не было =)
не совсем понятна идея
Добавлено: 17.03.2021, 14:05
sergeevizh
OkayCMS писал(а):sergeevizh писал(а):ох, а сделать бы еще проверку номера телефона по смс, цены ценной OkayCMS не было =)
А за смс кто платить будет?
собственник магазина конечно же, накладывая сумму за пакет смс, на товары пропорционально
или
https://firebase.google.com/docs/auth/web/phone-authДобавлено спустя 4 минуты 54 секунды:виктор писал(а):OkayCMS писал(а):
Если вы знаете хотя бы один продукт, который сделали сразу правильно и никогда не улучшали - покажите мне его.
окай - отличная цмс, я с этим не спорю. но ведь этот вопрос идет со второй версии, темы на форуме тому доказательства. у меня на сайте сделала сначала симпла потом техподдержка. но сейчас еще два сайта запустил на 4 окае и все начинать по новой. когда же телефон станет главнее имейла?
sergeevizh писал(а):ох, а сделать бы еще проверку номера телефона по смс, цены ценной OkayCMS не было =)
не совсем понятна идея
идея авторизовывать покупателя в магазине без ввода пароля и e-mail
покупатель вводит номер мобильного в popup окне
скрипт генерирует случайную числовую комбинацию и записывает её в таблицу с покупателями, если такой номер телефона есть в базе, то приписывает к покупателю, если номер отсутствует создает запись с номером телефона и кодом
покупателю приходит смс с кодом, этот код вводим в popup окно после ввода номера, проверяем код из смс в базе, если верен, авторизовываем
Добавлено: 18.03.2021, 04:29
makki
sergeevizh писал(а):https://firebase.google.com/docs/auth/web/phone-auth
Firebase тут лишний. Система уже использует через composer php-библиотеку libphonenumber. Этого достаточно чтобы построить стандартную авторизацию через номер телефона. Ну и конечно не обойтись без смс шлюза, чтобы отправлять в смс пароль при запросе восстановления пароля. На 2й версии уже давно использую этот метод.
Добавлено: 20.03.2021, 16:07
torele
Можно ли реализовать данный функционал на 4 версии?
Добавлено: 20.03.2021, 16:32
makki
torele писал(а):Можно ли реализовать данный функционал на 4 версии?
https://okay-cms.com/ua/products/simplamarket_email_not_required