Как сделать необязательным поле e-mail?

  • 28 Ответов
  • 1118 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

One

  • ****
  • 257
  • 2
Здравствуйте, подскажите как при оформлении заказа сделать необязательным поле e-mail?

*

gartes

  • ******
  • 951
  • 71
  • Е = mс²
Опции такой в VirtueMart нет. Нужно javascript-ом вставлять какую нибудь рыбу.. )) типа xx@xxx.xx это при условии что заказ может оформить не зарегеный пользователь..
к примеру как здесь.vivalavita.com.ua
Но поле емайл там все равно обязательное.

*

One

  • ****
  • 257
  • 2
А если кто-то будет вводить e-mail?

*

gartes

  • ******
  • 951
  • 71
  • Е = mс²
Цитировать
А если кто-то будет вводить e-mail?
)) Ну значит перед тем как заполнить значение в поле емайл нужно проверить его на содержание. И если оно действительно пустое то поставить xx@xxx.xx,
а если значение есть (то есть покупатель все же ввел свой емайл ) тогда оставляем как есть

*

One

  • ****
  • 257
  • 2
)) Ну значит перед тем как заполнить значение в поле емайл нужно проверить его на содержание. И если оно действительно пустое то поставить xx@xxx.xx,
а если значение есть (то есть покупатель все же ввел свой емайл ) тогда оставляем как есть

А можете подсказать как это сделать?

*

gartes

  • ******
  • 951
  • 71
  • Е = mс²
Подскажу...
Нужно на кнопку повесить такой обработчик.
Код
$('#confirmbtn_button').on('click', function  (){
var eEl = $('[name*="email"]').val()
if(!eEl.val()){
var tel = $('[name*="phone"]').val()
eEl.val('no_reg_'+tel+'@xxx.xx')
} // end if
});

Где то так
#confirmbtn_button - ID Кнопки регистрации

*

One

  • ****
  • 257
  • 2
Если у меня one page checkout, мне надо кнопку искать в файлах этого расширения или в файлах VirtueMart? Если знаете, в каком конкретно файле искать, подскажите, пожалуйста.

*

One

  • ****
  • 257
  • 2
Для того, чтобы сделать поле e-mail необязательным ищем файл onepage.unlogged.tpl, у меня он был по адресу

Цитировать
   /public_html/components/com_onepage/themes/название шаблона

После чего находим вот этот код
Код
<button style="right: 0; top:0;" id="confirmbtn_button" type="submit" autocomplete="off" <?php echo $op_onclick ?>  ><?php echo OPCLang::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU')?></button>

И вместо него

Код
<?php echo $op_onclick ?>

Добавляем

Код
$('#confirmbtn_button').on('click', function  (){
var eEl = $('[name*="email"]').val()
if(!eEl.val()){
var tel = $('[name*="phone"]').val()
eEl.val('no_reg_'+tel+'@xxx.xx')
} // end if
});

Ликуем)

*

One

  • ****
  • 257
  • 2
Код
gartes
Огромное Вам спасибо

*

gartes

  • ******
  • 951
  • 71
  • Е = mс²
Тут немного неправильно
Код
$('#confirmbtn_button').on('click', function  (){
var eEl = $('[name*="email"]').val()
if(!eEl.val()){
var tel = $('[name*="phone"]').val()
eEl.val('no_reg_'+tel+'@xxx.xx')
} // end if
});
var eEl = $('[name*="email"]').val() заменить на var eEl = $('[name*="email"]') (без .val())

И вот еще ...
<?php echo $op_onclick ?> не в место этого ...
А ниже
<script> .... тут код ...</script>
скорее всего что тут валидаторы формы стоят. или json sender.
В общем как то так.

*

One

  • ****
  • 257
  • 2
Тут немного неправильно
Код
$('#confirmbtn_button').on('click', function  (){
var eEl = $('[name*="email"]').val()
if(!eEl.val()){
var tel = $('[name*="phone"]').val()
eEl.val('no_reg_'+tel+'@xxx.xx')
} // end if
});
var eEl = $('[name*="email"]').val() заменить на var eEl = $('[name*="email"]') (без .val())

И вот еще ...
<?php echo $op_onclick ?> не в место этого ...
А ниже
<script> .... тут код ...</script>
скорее всего что тут валидаторы формы стоят. или json sender.
В общем как то так.
Ниже? Сразу после этого <?php echo $op_onclick ?> ?

То есть надо дописать <script>, сам код
Код
$('#confirmbtn_button').on('click', function  (){
var eEl = $('[name*="email"]').val()
if(!eEl.val()){
var tel = $('[name*="phone"]').val()
eEl.val('no_reg_'+tel+'@xxx.xx')
} // end if
});
И закрытие скрипта </script>. Так?

*

gartes

  • ******
  • 951
  • 71
  • Е = mс²
Код
<button style="right: 0; top:0;" id="confirmbtn_button" type="submit" autocomplete="off" >
           
          <?php echo OPCLang::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU')?>

</button>

<script>
$('#confirmbtn_button').on('click', function  (){
var eEl = $('[name*="email"]')
if(!eEl.val()){
var tel = $('[name*="phone"]').val()
eEl.val('no_reg_'+tel+'@xxx.xx')
} // end if
});

</script>

Вот так.!
« Последнее редактирование: 28.03.2016, 09:02:07 от gartes »

*

One

  • ****
  • 257
  • 2
Есть один момент, подтверждение заказа происходит медленно, при нажатии на кнопку "Подтвердить" очень долго грузит, до 10 сек. Как ускорить этот процесс? Может быть как-то убрать процесс проверки заполнения полей?

*

gartes

  • ******
  • 951
  • 71
  • Е = mс²
Цитировать
Может быть как-то убрать процесс проверки заполнения полей?
Ну вполне возможно... Если конечно у вас полей для проверки около 10 тысяч, то да..... :laugh:

Это может быть что какой то плагин тупит. Особенно те которые в папке systems валяются.
Скорее всего что это как раз один плагин может такое творить..

А в обще то что бы что то сказать по этому поводу нужно как минимум реж. отладки включить.. Чтоб не гадать.. 


*

One

  • ****
  • 257
  • 2
При включении режима отладки, страница не загружается, просто белый экран.

*

One

  • ****
  • 257
  • 2
Через FireBug возможно это сделать?

*

One

  • ****
  • 257
  • 2
Можете помочь решить проблему?

*

gartes

  • ******
  • 951
  • 71
  • Е = mс²
Цитировать
При включении режима отладки, страница не загружается, просто белый экран.
Ну тогда отрубите все плагины. И запускайте в режиме отладки.
Потом по 1 включайте и проверяйте ...
На том на котором молоко появиться там и копать нужно.

*

One

  • ****
  • 257
  • 2
Ну тогда отрубите все плагины. И запускайте в режиме отладки.
Потом по 1 включайте и проверяйте ...
На том на котором молоко появиться там и копать нужно.

На локалхосте это можно делать?


*

One

  • ****
  • 257
  • 2
Это может быть что какой то плагин тупит. Особенно те которые в папке systems валяются.

Вы были правы. Тормоза из-за плагина BIT VirtueMart Product Badges, он выводит картинки скидка, хит и т.д. Хотелось бы не выключать этот плагин, но на пока, это необходимо. Что можно сделать, чтобы этот плагин не тормозил так сильно подтверждение заказа? Тормоза иногда доходят до 30 секунд.

*

gartes

  • ******
  • 951
  • 71
  • Е = mс²
Цитировать
он выводит картинки скидка, хит и т.д
  ;D
Отрубите его а такие картинки можно кастомарными полями выводить или в самом шаблоне проверять. ))
Короче не нужен он вам. ))

*

Socha

  • ***
  • 34
  • 0
Вот так.!
gartes, подскажите пожалуйста, почему у меня не работает?
Joomla! 3.5.1 + VirtueMart 3.0.16 + One Page Checkout

Нашел файл отвечающий за вывод кнопки "оформить заказ" и добавил туда скрипт. Получилось вот так:
Код
<?php if ($BUTTONS->SHOW_CONFIRM_BUTTON) { ?>
<input type="submit" class="text_button checkout_button" id="confirmbtn_button" name="bypv_submit_confirm" value="ОФОРМИТЬ ЗАКАЗ" />
<?php } ?>

<script>
$('#confirmbtn_button').on('click', function  (){
var eEl = $('[name*="email"]')
if(!eEl.val()){
var tel = $('[name*="phone"]').val()
eEl.val('no_reg_'+tel+'@xxx.xx')
} // end if
});

</script>
id="confirmbtn_button" это уже я прибавил к input т.к. он был без id
При нажатии на кнопку, пишет "Не удалось зарегистрировать пользователя: Пожалуйста, укажите ваше имя."
Я так понимаю скрипт не срабатывает, а почему не понимаю...
Спасибо.
« Последнее редактирование: 01.06.2016, 16:29:31 от Socha »

*

Socha

  • ***
  • 34
  • 0
подскажите пожалуйста, почему у меня не работает?

Кажется понял почему ))
Я пытаюсь в обязательное поле "name" подставить данные из поля "email"
тем самым сделав поле "отображаемое имя" заполняемым по умолчанию...

А этот скрипт не про это ((

Жаль я скрипты писать не умею...
Подскажите как он должен выглядеть?
Задача такая - убрать поле "второе имя" оно же "отображаемое имя" при регистрации пользователя в VirtueMart
А так как это поле обязательно для регистрации - хочу чтобы туда подставлялся указанный email

*

Socha

  • ***
  • 34
  • 0
убрать поле "второе имя" оно же "отображаемое имя" при регистрации пользователя в VirtueMart

Неужели ни кто не знает как это делается в VirtueMart3?

*

One

  • ****
  • 257
  • 2
Неужели ни кто не знает как это делается в VirtueMart3?
Если это имя в настройках VirtueMart, в меню "поля заполняемые пользователями", то в названии поля "first_name" снимите с публикации "Показывать в корзине"

*

One

  • ****
  • 257
  • 2
gartes, используя код ниже подтверждения заказа проходит в любом случае, даже если не одно поле не заполнено. Можете подсказать, как акцент поставить именно на одном поле, именно электронной почты?

Код
<button style="right: 0; top:0;" id="confirmbtn_button" type="submit" autocomplete="off" >
           
          <?php echo OPCLang::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU')?>

</button>

<script>
$('#confirmbtn_button').on('click', function  (){
var eEl = $('[name*="email"]')
if(!eEl.val()){
var tel = $('[name*="phone"]').val()
eEl.val('no_reg_'+tel+'@xxx.xx')
} // end if
});

</script>

*

gartes

  • ******
  • 951
  • 71
  • Е = mс²
Цитировать
Можете подсказать, как акцент поставить именно на одном поле, именно электронной почты?
Прости не понял ...

*

One

  • ****
  • 257
  • 2
Прости не понял ...
Как сделать так, чтобы регистрация заказа проходила если только поле электронной почты не заполнено? Потому что если использовать данный код, тогда можно вообще все поля оставить пустыми и регистрация заказа все равно будет сделана. При кодах по умолчанию, пока клиент не заполнил нужные поля, заказ он не мог зарегистрировать. С этим кодом не имеет значение, поля заполнены или нет, если нажать кнопку "Подтвердить" заказ все равно оформляется, только в админку попадает заказ без контактов или не со всеми заполнеными контактами, потому что клиент, некоторые поля предпочёл не заполнять.
« Последнее редактирование: 14.06.2017, 00:45:17 от One »