Как сделать поле e-mail необязательным или убрать из формы заказа.

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

pserega279
pserega279
Репутация: 0
Сообщения: 9
Зарегистрирован: 26.04.2017
С нами: 6 лет 11 месяцев

Сообщение #1 pserega279 » 25.08.2017, 17:39

Здравствуйте уважаемые! Есть ли у кого нибудь решение для того чтобы сделать поле e-mail необязательным или убрать вообще из формы заказа корзины? Уверен что из-за этого поля 90% брошенных корзин, а судя по своему магазины регистрируются примерно 0,5% от общего кол-ва покупателей. Буду очень признателен за помощь в решение данной проблемы.

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 8 месяцев
Откуда: Киев
Сайт

Сообщение #2 makki » 25.08.2017, 19:04

Самый простой вариант - сделать это поле скрытым и подставить туда в качестве значения какой-то свой дежурный email
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

pserega279
pserega279
Репутация: 0
Сообщения: 9
Зарегистрирован: 26.04.2017
С нами: 6 лет 11 месяцев

Сообщение #3 pserega279 » 25.08.2017, 19:25

А можно подробнее, как сделать скрытым и где подставлять? В каких файлах делать изменения?

pserega279
pserega279
Репутация: 0
Сообщения: 9
Зарегистрирован: 26.04.2017
С нами: 6 лет 11 месяцев

Сообщение #4 pserega279 » 26.08.2017, 16:30

Добрый вечер! Еще раз обращаюсь за помощью!
Кто знает как сделать поле e-mail в форме оформления заказа скрытым и подставить туда в качестве значения какой-то свой дежурный email? Или возможно другие варианты чтобы сделать поле e-mail необязательным или убрать вообще из формы заказа корзины?

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 8 месяцев
Откуда: Киев
Сайт

Сообщение #5 makki » 26.08.2017, 17:15

В файле design/ваш шаблон/html/cart.tpl вместо строки

Код: Выделить всё

<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="{if $user}text{else}hidden{/if}" value="{if $user}{$email|escape}{else}my@email.com{/if}" data-language="form_email" placeholder="{$lang->form_email}*">

my@email.com - это подставной e-mail.

Но тогда надо делать обязательным поле Номер телефона, а иначе может так получиться, что у вас будет заказ без всяких контактных данных.
Поэтому дополнительно в файле design/ваш шаблон/html/scripts.tpl вместо

Код: Выделить всё

    if($(".fn_validate_cart").size()>0) {
        $(".fn_validate_cart").validate({
            rules: {
                name: "required",
                email: {
                    required: true,
                    email: true
                },
                captcha_code: "required"
            },
            messages: {
                name: form_enter_name,
                email: form_enter_email,
                captcha_code: form_error_captcha
            }
        });
    }

пишем

Код: Выделить всё

    if($(".fn_validate_cart").size()>0) {
        $(".fn_validate_cart").validate({
            rules: {
                name: "required",
                email: {
                    required: true,
                    email: true
                },
                phone: "required",
                captcha_code: "required"
            },
            messages: {
                name: form_enter_name,
                email: form_enter_email,
                phone: form_enter_phone,
                captcha_code: form_error_captcha
            }
        });
    }

Также, чтобы не светить ваш подставной e-mail заказчику на странице оформленного заказа, в файле design/ваш шаблон/html/order.tpl уберите блок

Код: Выделить всё

                <tr>
                    <td>
                        <span data-language="order_email">{$lang->order_email}</span>
                    </td>
                    <td>{$order->email|escape}</td>
                </tr>
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

pserega279
pserega279
Репутация: 0
Сообщения: 9
Зарегистрирован: 26.04.2017
С нами: 6 лет 11 месяцев

Сообщение #6 pserega279 » 26.08.2017, 18:29

Спасибо Вам огромное , очень выручили. Все работает как и хотел.
+1 к репутации!

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 2 месяца

Сообщение #7 Julius123 » 01.09.2017, 07:42

Костыль неплохой, но хотелось бы просто сделать это поле не обязательным. Если человек не хочет он его не заполнит, а если захочет то заполнит и будет получать письма о его заказе на имейл, лишать вообще возможности получать письма и быть в курсе своего же заказа очень неправильно.

koteyka-2 M
Аватара
koteyka-2 M
Репутация: 7
Сообщения: 45
Зарегистрирован: 27.09.2016
С нами: 7 лет 6 месяцев
Откуда: Днепр
Skype

Сообщение #8 koteyka-2 » 01.09.2017, 09:04

В view/CartView.php закоммнетируйте строки

Код: Выделить всё

            } elseif(!$this->validate->is_email($order->email, true)) {
                $this->design->assign('error', 'empty_email');


В шаблоне cart.tpl закомментируйте строки

Код: Выделить всё

                    {if $error == 'empty_email'}
                        <span data-language="form_enter_email">{$lang->form_enter_email}</span>
                    {/if}
Настройка обмена OKAY и SIMPLA с 1С 7.7 и 8.х, Мой склад и Укрсклад
Доработка, изменение функционала.


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 40 гостей