Перейти к содержимому


Функция Даю Согласие На Обработку Данных для Лето


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 17

#1 MikDark

MikDark

    Активный участник

  • Модераторы
  • 6 468 сообщений

Отправлено 08 Декабрь 2015 - 10:29

Для многих стал актуальным вопрос создании функции, которая бы не давала оформить заказ без выставленной галочки согласия с правилами магазина. Привожу реализацию для шаблона Лето.

1) В шаблон main.js Вам нужно найти код:

$("#deliveryConvenientDate").datepicker({
dayNames	 : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
closeText	 : 'Готово',
currentText : 'Сегодня' ,
duration	 : '',
monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
yearRange	 : "-6:+6",
dateFormat : 'dd.mm.yy',
minDate		 : new Date(),
firstDay	 : 1
});

и после него добавить код:

$('#submit_order').prop('disabled', true);
$('#pers_confirm').change(function() {
if ($('#pers_confirm').prop("checked")){
$('#submit_order').prop('disabled', false);
} else {
$('#submit_order').prop('disabled', true);
}
});

2) В шаблоне Быстрый заказ Вам нужно заменить код:
<!-- END Если в тарифном плане подключен модуль скидок по купонам и суммам заказов -->
	 <button type="submit" class="button" title="Оформить заказ">Оформить заказ</button>

на

<!-- END Если в тарифном плане подключен модуль скидок по купонам и суммам заказов -->
	 <button id="submit_order" type="submit" class="button" title="Оформить заказ">Оформить заказ</button>
	 <input id="pers_confirm" type="checkbox" name="pers_confirm"><label>Нажимая кнопку Оформить заказ, я соглашаюсь с <a href="#">политикой конфиденциальности</a></label>


#2 Эбболка

Эбболка

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 1 361 сообщений

Отправлено 08 Декабрь 2015 - 10:52

да, но при нажатии кнопки даже если не ставить галочку заказ оформляется

Аккаунт SL-363025

#3 MikDark

MikDark

    Активный участник

  • Модераторы
  • 6 468 сообщений

Отправлено 08 Декабрь 2015 - 11:20

Просмотр сообщенияЭбболка (08 Декабрь 2015 - 10:52) писал:

да, но при нажатии кнопки даже если не ставить галочку заказ оформляется

Аккаунт SL-363025

Это потому что у Вас удалена часть скриптов из шаблона Быстрый заказа. Сейчас Вам произвели изменения.

#4 Эбболка

Эбболка

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 1 361 сообщений

Отправлено 08 Декабрь 2015 - 12:12

заказ прекрасно оформляется без галочки

#5 MikDark

MikDark

    Активный участник

  • Модераторы
  • 6 468 сообщений

Отправлено 08 Декабрь 2015 - 13:06

Просмотр сообщенияЭбболка (08 Декабрь 2015 - 12:12) писал:

заказ прекрасно оформляется без галочки

Оформлялся из корзины, сейчас Вам поправили, проверьте, пожалуйста.

#6 Эбболка

Эбболка

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 1 361 сообщений

Отправлено 08 Декабрь 2015 - 14:33

мерси. А вы не могли бы помочь и внести такие же изменения на сайт
Аккаунт SL-140897
спасибо)

#7 MikDark

MikDark

    Активный участник

  • Модераторы
  • 6 468 сообщений

Отправлено 08 Декабрь 2015 - 16:27

Просмотр сообщенияЭбболка (08 Декабрь 2015 - 14:33) писал:

мерси. А вы не могли бы помочь и внести такие же изменения на сайт
Аккаунт SL-140897
спасибо)

Изменения Вам внесли

#8 Эбболка

Эбболка

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 1 361 сообщений

Отправлено 08 Декабрь 2015 - 21:04

огромное спасибо

#9 amalex

amalex

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 16 Апрель 2017 - 15:38

Похожая проблема и в форме обратной связи с администрацией (страница Связь С Администрацией). Как ее решить?
После проведение изменений, как у Вы указали в первом посте, заказ оформляется и без всякой галочки. Надо же проверить ее наличие при быстром создании заказа, а это не делается.

#10 MikDark

MikDark

    Активный участник

  • Модераторы
  • 6 468 сообщений

Отправлено 16 Апрель 2017 - 16:29

Просмотр сообщенияamalex (16 Апрель 2017 - 15:38) писал:

Похожая проблема и в форме обратной связи с администрацией (страница Связь С Администрацией). Как ее решить?

Здравствуйте. Вы там хотите поставить данную галочку?

#11 amalex

amalex

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 16 Апрель 2017 - 19:23

Просмотр сообщенияMikDark (16 Апрель 2017 - 16:29) писал:

Здравствуйте. Вы там хотите поставить данную галочку?
  Конечно там тоже должна работать политика конфиденциальности, раз клиент будет заполнять личные данные. И при регистрации тоже. Но я хочу сказать еще, что наличие галочки или ее отсутствие никак не сказывается при быстром заказе.

#12 Grownchild

Grownchild

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений
  • ГородНижний Новгород

Отправлено 20 Апрель 2017 - 00:50

А можно на SL-409037 тоже поправить, а то даже без галочки заказ оформляется,
Спасибо

#13 Stasya

Stasya

    Активный участник

  • Модератоpы
  • 4 007 сообщений

Отправлено 20 Апрель 2017 - 10:23

Просмотр сообщенияGrownchild (20 Апрель 2017 - 00:50) писал:

А можно на SL-409037 тоже поправить, а то даже без галочки заказ оформляется,
Спасибо
Здравствуйте. Не обнаружила у Вас данной кнопки. Поэтому чтобы ее установить Вам необходимо в шаблоне Быстрый заказ найти строку
<button type="submit" class="button" title="Оформить заказ">Оформить заказ</button>
и перед ней вставить код
<div class="agreeBlock" ><input type="checkbox" id="agree"><label for="agree">Нажимая кнопку Оформить заказ, я соглашаюсь с политикой конфиденциальности</label><br><span class="reqBlockRed" style="display:none"> Это поле обязательно для заполнения</span></div>
Далее в файле main.js найдите блок
// Скрипты для Быстрого заказа
function quickOrderScripts(){
$(document).ready(function(){
   
  var ID = $('input[name="form[delivery][id]"]:checked').val(); 
   
  $('.payment').hide();
  $('.payment[rel="' + ID + '"]').show();
  $('.payment[rel="' + ID + '"]').find('input:first').prop('checked', true);
   
  $('.deliveryRadio').click(function(){ 
	var ID = $('input[name="form[delivery][id]"]:checked').val(); 
	$('.payment').hide();
	$('.payment[rel="' + ID + '"]').show();
	$('.payment[rel="' + ID + '"]').find('input:first').prop('checked', true);
  });
и замените его на
// Скрипты для Быстрого заказа
function quickOrderScripts(){
$(document).ready(function(){
   
  var ID = $('input[name="form[delivery][id]"]:checked').val(); 
   
  $('.payment').hide();
  $('.payment[rel="' + ID + '"]').show();
  $('.payment[rel="' + ID + '"]').find('input:first').prop('checked', true);
   
  $('.deliveryRadio').click(function(){ 
	var ID = $('input[name="form[delivery][id]"]:checked').val(); 
	$('.payment').hide();
	$('.payment[rel="' + ID + '"]').show();
	$('.payment[rel="' + ID + '"]').find('input:first').prop('checked', true);
  });
  $('#quickform button.button').prop('disabled', true);
  $('#agree').click(function(){
	if($(this).hasClass('active')){
	  $(this).removeClass('active');
	  $('.reqBlockRed').show()
	  $('#quickform button.button').prop('disabled', true);
	}else{
	  $(this).addClass('active');
	  $('.reqBlockRed').hide()
	  $('#quickform button.button').prop('disabled', false);
	}
  })
В конец файла main.css добавьте блок
.agreeBlock{text-align:center;}
.reqBlockRed{color:red;}


#14 Grownchild

Grownchild

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений
  • ГородНижний Новгород

Отправлено 20 Апрель 2017 - 10:50

Просмотр сообщенияStasya (20 Апрель 2017 - 10:23) писал:

Здравствуйте. Не обнаружила у Вас данной кнопки. Поэтому чтобы ее установить Вам необходимо в шаблоне Быстрый заказ найти строку
<button type="submit" class="button" title="Оформить заказ">Оформить заказ</button>
и перед ней вставить код
<div class="agreeBlock" ><input type="checkbox" id="agree"><label for="agree">Нажимая кнопку Оформить заказ, я соглашаюсь с политикой конфиденциальности</label><br><span class="reqBlockRed" style="display:none"> Это поле обязательно для заполнения</span></div>
Далее в файле main.js найдите блок
// Скрипты для Быстрого заказа
function quickOrderScripts(){
$(document).ready(function(){

var ID = $('input[name="form[delivery][id]"]:checked').val();

$('.payment').hide();
$('.payment[rel="' + ID + '"]').show();
$('.payment[rel="' + ID + '"]').find('input:first').prop('checked', true);

$('.deliveryRadio').click(function(){
var ID = $('input[name="form[delivery][id]"]:checked').val();
$('.payment').hide();
$('.payment[rel="' + ID + '"]').show();
$('.payment[rel="' + ID + '"]').find('input:first').prop('checked', true);
});
и замените его на
// Скрипты для Быстрого заказа
function quickOrderScripts(){
$(document).ready(function(){

var ID = $('input[name="form[delivery][id]"]:checked').val();

$('.payment').hide();
$('.payment[rel="' + ID + '"]').show();
$('.payment[rel="' + ID + '"]').find('input:first').prop('checked', true);

$('.deliveryRadio').click(function(){
var ID = $('input[name="form[delivery][id]"]:checked').val();
$('.payment').hide();
$('.payment[rel="' + ID + '"]').show();
$('.payment[rel="' + ID + '"]').find('input:first').prop('checked', true);
});
$('#quickform button.button').prop('disabled', true);
$('#agree').click(function(){
if($(this).hasClass('active')){
	 $(this).removeClass('active');
	 $('.reqBlockRed').show()
	 $('#quickform button.button').prop('disabled', true);
}else{
	 $(this).addClass('active');
	 $('.reqBlockRed').hide()
	 $('#quickform button.button').prop('disabled', false);
}
})
В конец файла main.css добавьте блок
.agreeBlock{text-align:center;}
.reqBlockRed{color:red;}


Выдает вот такое сообщение при попытке оформить заказ

Прикрепленные изображения

  • Screen Shot 2017-04-20 at 10.46.22.png


#15 Stasya

Stasya

    Активный участник

  • Модератоpы
  • 4 007 сообщений

Отправлено 20 Апрель 2017 - 12:55

Просмотр сообщенияGrownchild (20 Апрель 2017 - 10:50) писал:

Выдает вот такое сообщение при попытке оформить заказ
У Вас в шаблоне Быстрый заказ есть лишний код. Найдите в данном шаблоне строку
<form action="{ORDER_STAGE_CONFIRM_WITHOUT<form action="{ORDER_STAGE_CONFIRM_WITHOUT_DOMAIN_URL}" method="post" id="quickform">
и замените ее на
<form action="{ORDER_STAGE_CONFIRM_WITHOUT_DOMAIN_URL}" method="post" id="quickform">


#16 Grownchild

Grownchild

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений
  • ГородНижний Новгород

Отправлено 20 Апрель 2017 - 14:16

Заказ теперь оформляется, но

если не нажать на чекбокс и нажать 'оформить заказ' то просто ничего не происходит,
не подсвечиваются поля обязательные к заполнению и создается впечатление что кнопка не работает.
что нужно поправить?

#17 Stasya

Stasya

    Активный участник

  • Модератоpы
  • 4 007 сообщений

Отправлено 20 Апрель 2017 - 14:34

Просмотр сообщенияGrownchild (20 Апрель 2017 - 14:16) писал:

Заказ теперь оформляется, но

если не нажать на чекбокс и нажать 'оформить заказ' то просто ничего не происходит,
не подсвечиваются поля обязательные к заполнению и создается впечатление что кнопка не работает.
что нужно поправить?
Можно попробовать решить данный вопрос таким способом. В шаблоне Быстрый заказ найдите строку
<span class="reqBlockRed" style="display:none"> Это поле обязательно для заполнения</span>
и замените ее на
<span class="reqBlockRed"> Это поле обязательно для заполнения</span>


#18 Grownchild

Grownchild

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 104 сообщений
  • ГородНижний Новгород

Отправлено 20 Апрель 2017 - 15:38

Ок, вопрос закрыт, спасибо




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных