Мое скромное мнение, что на странице оформления заказа для незарегистрированных пользователей нет смысла делать обязательным поле Email. Вместо этого лучше сделать обязательным поле "Номер телефона", а Email - опциональным. Если E-mail заполнено, покупатель получает уведомление о заказе, в противном случае - нет.
Сделал и решил поделиться.
1) В файле design/ваш_шаблон/html/scripts.tpl находим строку
Код: Выделить всё
if($(".fn_validate_cart").size()>0) {
и меняем содержимое условия 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}*">