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


Изменение Времени И Даты Доставки


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

#21 Vaccina

Vaccina

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

  • Модераторы
  • 24 353 сообщений

Отправлено 31 Декабрь 2014 - 06:04

Нет, в html менять ничего не нужно. По сути код по какой-то причине не выполняется, так как если выполнить его отдельно на уже отображаемых данных, то он корректно обрабатывается. Давайте попробуем сделать следующее - в шаблоне "Быстрый заказ" найдите код

</script>
	{% ENDIF %}
<!-- Блок для обновления данных корзины. Не виден пользователю -->
<!-- end Блок для обновления данных корзины. Не виден пользователю -->
	</div>
	<script>
$(function() {
  var minDate = new Date();
  if ((minDate.getHours() >= 16 && minDate.getDay() == 4) || (minDate.getHours() <= 16 && minDate.getDay() == 5)) {
		minDate.setDate(minDate.getDate() + (minDate.getDay() == 4 ? 3 : 2));
  }
  $("#quickDeliveryConvenientDate").datepicker({
		dayNames: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
		dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
		closeText: 'Готово',
		currentText: 'Сегодня' ,
		duration: '',
		monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
		monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
		yearRange: "-6:+6",
		dateFormat: 'dd.mm.yy',
		minDate: minDate,
		firstDay: 1,
		beforeShowDay: function(date) {return([date.getDay() == 0 || date.getDay() == 6, ''])}
  });
});
</script>
</div>
<script>
$(function () {
  setTimeout(function () {
		$('[name="form[delivery][convenient_time_from]"]').attr('name', 'convenient_time').change(function () {
		  var timeFrom = $('[name="form[delivery][convenient_time_from]"][type="hidden"]');
		  var timeTo = $('[name="form[delivery][convenient_time_to]"][type="hidden"]');
		  if (!timeFrom.length && !timeTo.length) {
				timeFrom = $('<input type="hidden" name="form[delivery][convenient_time_from]">');
				timeTo = $('<input type="hidden" name="form[delivery][convenient_time_to]">');
		  }
		  timeFrom.val($(this).val() == '13' ? 8 : 14);
		  timeTo.val($(this).val() == '13' ? 14 : 23);
		  $(this).closest('form').append(timeFrom, timeTo);
		}).trigger('change');
  }, 600);
});
</script>

и замените его на

$(function() {
  var minDate = new Date();
  if ((minDate.getHours() >= 16 && minDate.getDay() == 4) || (minDate.getHours() <= 16 && minDate.getDay() == 5)) {
		minDate.setDate(minDate.getDate() + (minDate.getDay() == 4 ? 3 : 2));
  }
  $("#quickDeliveryConvenientDate").datepicker({
		dayNames: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
		dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
		closeText: 'Готово',
		currentText: 'Сегодня' ,
		duration: '',
		monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
		monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
		yearRange: "-6:+6",
		dateFormat: 'dd.mm.yy',
		minDate: minDate,
		firstDay: 1,
		beforeShowDay: function(date) {return([date.getDay() == 0 || date.getDay() == 6, ''])}
  });
});
$(function () {
  setTimeout(function () {
		$('[name="form[delivery][convenient_time_from]"]').attr('name', 'convenient_time').change(function () {
		  var timeFrom = $('[name="form[delivery][convenient_time_from]"][type="hidden"]');
		  var timeTo = $('[name="form[delivery][convenient_time_to]"][type="hidden"]');
		  if (!timeFrom.length && !timeTo.length) {
				timeFrom = $('<input type="hidden" name="form[delivery][convenient_time_from]">');
				timeTo = $('<input type="hidden" name="form[delivery][convenient_time_to]">');
		  }
		  timeFrom.val($(this).val() == '13' ? 8 : 14);
		  timeTo.val($(this).val() == '13' ? 14 : 23);
		  $(this).closest('form').append(timeFrom, timeTo);
		}).trigger('change');
  }, 1000);
});
</script>
	{% ENDIF %}
<!-- Блок для обновления данных корзины. Не виден пользователю -->
<!-- end Блок для обновления данных корзины. Не виден пользователю -->
   </div>
</div>

Перед проверкой очистите кэш в вашем браузере.

#22 delph101

delph101

    Пользователь

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

Отправлено 09 Январь 2015 - 16:39

Огромное спасибо! все получилось!

#23 delph101

delph101

    Пользователь

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

Отправлено 09 Январь 2015 - 16:47

Появилась проблема, не знаю по какой причине, условия заказа товара у меня не выполняются. Условия были такими:
Отсюда вопрос, как реализовать данные условия.
1. В календаре выбора даты доставки клиент мог выбрать только сб и вс, будни должны быть серого цвета неактивны.
2. Если клиент осуществляет заказ до 16-00 четверга, то для него активны все последующие дни субботы и воскресенья.
3. Если клиент осуществляет заказ в промежуток между 16-00 четверга и 16-00 пятницы, для него активно только воскресенье текущей недели и сб и вс следующих недель.
4. Если клиент осуществляет заказ после 16-00 пятницы, для него неактивны сб и вс текущей неделе

Сейчас на календаре пятница 16-40, создаю заказ, активны суббота и воскресенье на текущей неделе, а должны быть неактивны.

И ещё проблема, как сделать поле выбора даты заказа обязательным? клиенты оставляют его пустым и заказ проходит.

#24 Vaccina

Vaccina

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

  • Модераторы
  • 24 353 сообщений

Отправлено 21 Январь 2015 - 03:52

В main.js найдите:
  var minDate = new Date();
  if ((minDate.getHours() >= 16 && minDate.getDay() == 4) || (minDate.getHours() <= 16 && minDate.getDay() == 5)) {
				minDate.setDate(minDate.getDate() + (minDate.getDay() == 4 ? 3 : 2));
  }
  $("#quickDeliveryConvenientDate").datepicker({
замените на:
  var minDate = new Date();
  if ((minDate.getHours() >= 16 && minDate.getDay() == 4) || (minDate.getHours() < 16 && minDate.getDay() == 5)) {
	  minDate.setDate(minDate.getDate() + (minDate.getDay() == 4 ? 3 : 2));
  } else if (minDate.getHours() >= 16 && (minDate.getDay() >= 5 || (minDate.getDay() == 0))) {
	 minDate.setDate(minDate.getDate() + 4);
  }
  $("#quickDeliveryConvenientDate").datepicker({


#25 delph101

delph101

    Пользователь

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

Отправлено 04 Февраль 2015 - 22:20

Просмотр сообщенияVaccina (21 Январь 2015 - 03:52) писал:

В main.js найдите:
var minDate = new Date();
if ((minDate.getHours() >= 16 && minDate.getDay() == 4) || (minDate.getHours() <= 16 && minDate.getDay() == 5)) {
			 minDate.setDate(minDate.getDate() + (minDate.getDay() == 4 ? 3 : 2));
}
$("#quickDeliveryConvenientDate").datepicker({
замените на:
var minDate = new Date();
if ((minDate.getHours() >= 16 && minDate.getDay() == 4) || (minDate.getHours() < 16 && minDate.getDay() == 5)) {
	 minDate.setDate(minDate.getDate() + (minDate.getDay() == 4 ? 3 : 2));
} else if (minDate.getHours() >= 16 && (minDate.getDay() >= 5 || (minDate.getDay() == 0))) {
	 minDate.setDate(minDate.getDate() + 4);
}
$("#quickDeliveryConvenientDate").datepicker({

в main.js не находит данный блок ((

#26 Vaccina

Vaccina

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

  • Модераторы
  • 24 353 сообщений

Отправлено 05 Февраль 2015 - 02:08

данный код начинается с 387 строки

#27 delph101

delph101

    Пользователь

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

Отправлено 08 Февраль 2015 - 21:23

Просмотр сообщенияVaccina (05 Февраль 2015 - 02:08) писал:

данный код начинается с 387 строки

А это в файле Быстрый заказ, я искал в main.js. Все заменил, большое спасибо!

#28 delph101

delph101

    Пользователь

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

Отправлено 23 Октябрь 2015 - 16:57

Подскажите, как мне реализовать следующие условие доставки в календаре выбора даты доставки:
При выборе даты доставки в форме заказа были активны дни начиная +2 дня от даты заказа?

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

  • 3.jpg


#29 Dars

Dars

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

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

Отправлено 23 Октябрь 2015 - 17:28

Просмотр сообщенияdelph101 (23 Октябрь 2015 - 16:57) писал:

Подскажите, как мне реализовать следующие условие доставки в календаре выбора даты доставки:
При выборе даты доставки в форме заказа были активны дни начиная +2 дня от даты заказа?
Здравствуйте!
В шаблоне "Быстрый заказ" найдите код:

		$(function() {
var minDate = new Date();
  if ((minDate.getHours() >= 16 && minDate.getDay() == 4) || (minDate.getHours() < 16 && minDate.getDay() == 5)) {
		  minDate.setDate(minDate.getDate() + (minDate.getDay() == 4 ? 3 : 2));
  } else if (minDate.getHours() >= 16 && (minDate.getDay() >= 5 || (minDate.getDay() == 0))) {
		 minDate.setDate(minDate.getDate() + 4);
  }
  $("#quickDeliveryConvenientDate").datepicker({
				dayNames: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
				dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
				closeText: 'Готово',
				currentText: 'Сегодня' ,
				duration: '',
				monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
				monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
				yearRange: "-6:+6",
				dateFormat: 'dd.mm.yy',
				minDate: minDate,
				firstDay: 1,
				beforeShowDay: function(date) {return([date.getDay() == 0 || date.getDay() == 6, ''])}
  });
});

и замените его на:

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


#30 delph101

delph101

    Пользователь

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

Отправлено 27 Октябрь 2015 - 11:56

Просмотр сообщенияDars (23 Октябрь 2015 - 17:28) писал:

Здравствуйте!
В шаблоне "Быстрый заказ" найдите код:

	 $(function() {
var minDate = new Date();
if ((minDate.getHours() >= 16 && minDate.getDay() == 4) || (minDate.getHours() < 16 && minDate.getDay() == 5)) {
		 minDate.setDate(minDate.getDate() + (minDate.getDay() == 4 ? 3 : 2));
} else if (minDate.getHours() >= 16 && (minDate.getDay() >= 5 || (minDate.getDay() == 0))) {
		 minDate.setDate(minDate.getDate() + 4);
}
$("#quickDeliveryConvenientDate").datepicker({
			 dayNames: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
			 dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
			 closeText: 'Готово',
			 currentText: 'Сегодня' ,
			 duration: '',
			 monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
			 monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
			 yearRange: "-6:+6",
			 dateFormat: 'dd.mm.yy',
			 minDate: minDate,
			 firstDay: 1,
			 beforeShowDay: function(date) {return([date.getDay() == 0 || date.getDay() == 6, ''])}
});
});

и замените его на:

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

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




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

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