Как Ограничить Время Доставки?
#241
Отправлено 21 Апрель 2016 - 18:15
Человек каким то образом сделал заказ сегодня аж в 17.30 на завтра как?!
#242
Отправлено 22 Апрель 2016 - 05:19
Smailer (17 Апрель 2016 - 14:57) писал:
А надо к примеру убрать Конкретные даты, к примеру 22 и 26 числа - этого месяца
но чтобы все остальные даты были доступны для Выбора.
beforeShowDay : function(date) {return([date.getDay() == 2 || date.getDay() == 5, ''])}
замените на:
beforeShowDay : function(date) {return([(date.getDay() == 2 && date.getDate() != 26) || date.getDay() == 5, ''])}
Smailer (21 Апрель 2016 - 18:15) писал:
Человек каким то образом сделал заказ сегодня аж в 17.30 на завтра как?!
У меня условие срабатывет и, судя по вашим словам, у вас тоже.
#243
Отправлено 22 Апрель 2016 - 18:49
Vaccina (22 Апрель 2016 - 05:19) писал:
У меня условие срабатывает и, судя по вашим словам, у вас тоже.
было два заказа вы можете посмотреть 307ой и 308 ой, и два эти заказа люди смогли сделать на следующий день а именно в 16.00 и 17.00, а у нас по условию стоит после 14.00 уже нельзя выбрать следующий день.
Навряд ли у обоих пользователей было настроено неправильно время.
--------
по поводу исключения дат..
beforeShowDay : function(date) {return([(date.getDay() == 2 && date.getDate() != 26) || date.getDay() == 5, ''])}
тут понятно что 26 исключается, а как указанно что 22ое?
к примеру нужно будет исключить 17 и 20 июня
как это сделать ?
#244
Отправлено 23 Апрель 2016 - 01:34
Smailer (22 Апрель 2016 - 18:49) писал:
Навряд ли у обоих пользователей было настроено неправильно время.
if(date.getHours() > 12 || date.getHours() < 23) { date.setDate(date.getDate() + 1); }
замените на:
if(date.getHours() > 12 || date.getHours() < 23) { date.setDate(date.getDate() + 2); }
Smailer (22 Апрель 2016 - 18:49) писал:
beforeShowDay : function(date) {return([(date.getDay() == 2 && date.getDate() != 26) || date.getDay() == 5, ''])}
тут понятно что 26 исключается, а как указанно что 22ое?
к примеру нужно будет исключить 17 и 20 июня
как это сделать ?
beforeShowDay : function(date) {return([date.getDay() == 2 || date.getDay() == 5, ''])}
замените на:
beforeShowDay: function(date) { if (date.getMonth() == 5 && date.getDate() == 17) { return ([false, '']); } if (date.getMonth() == 5 && date.getDate() == 20) { return ([false, '']); } return([date.getDay() == 2 || date.getDay() == 5, '']); }
#245
Отправлено 23 Апрель 2016 - 13:29
Vaccina (23 Апрель 2016 - 01:34) писал:
В main.js найдите:
beforeShowDay : function(date) {return([date.getDay() == 2 || date.getDay() == 5, ''])}
замените на:
beforeShowDay: function(date) { if (date.getMonth() == [u][b][color=#ff0000]5[/color][/b][/u] && date.getDate() == 17) { return ([false, '']); }
тоесть мы ставим -1 месяц тоесть если месяц 8ой мы ставим цифру 7 ?
#246
Отправлено 26 Апрель 2016 - 02:04
#247
Отправлено 11 Май 2016 - 14:10
.. пытался ранее сделать заказ 9 го в 10 утра, но почему то выбрать 10ое уже немог хотя по нашим условиям там стоит время 12 или 14 часов. а тут всего лишь 10 и уже нельзя..
и то даже не 10 а начало 10го.. 9 с копейками.. даже 10ти нету..
#248
Отправлено 13 Май 2016 - 16:57
#249
Отправлено 19 Май 2016 - 03:32
if(date.getHours() > 12 || date.getHours() < 23) { date.setDate(date.getDate() + 2); }
замените на:
if(date.getHours() > 12 && date.getHours() < 23) { date.setDate(date.getDate() + 2); }
#250
Отправлено 01 Июль 2016 - 12:33
#251
Отправлено 02 Июль 2016 - 02:39
#252
Отправлено 03 Июль 2016 - 10:57
#253
Отправлено 19 Июль 2016 - 07:21
Цитата
В шаблоне Быстрый заказ найдите:
<li class="fields"> <label for="quickDeliveryConvenientDate" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %}>Удобное время доставки{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> c <!-- старый срок <select class="form-select" name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} {%IF convenient_time_from_list.HOUR_INT>9%}{%IF convenient_time_from_list.HOUR_INT<23%} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {%ENDIF%}{%ENDIF%} {% ENDFOR %} </select> до <select name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} {%IF convenient_time_to_list.HOUR_INT>9%}{%IF convenient_time_to_list.HOUR_INT<23%} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {%ENDIF%}{%ENDIF%} {% ENDFOR %} </select> --> <select class="time_from form-select" onchange="document.getElementById('time_to').value=$(this).find(':selected').attr('data-id');document.getElementById('time_to').text=$(this).find(':selected').attr('data-id'); " name="form[delivery][convenient_time_from]"> <option></option> <option value="10" data-id="15"> 10</option> <option value="14" data-id="18"> 14</option> <option value="18" data-id="22"> 18</option> </select> до <select class="time_to form-select" name="form[delivery][convenient_time_to]"> <option></option> <option id="time_to" value="" ></option> </select> </div> </li>
замените на:
<li class="fields"> <label for="quickDeliveryConvenientDate" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %}>Удобное время доставки{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> c <select class="time_from form-select" onchange="document.getElementById('time_to').value=$(this).find(':selected').attr('data-id');document.getElementById('time_to').text=$(this).find(':selected').attr('data-id'); " name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} {% IF convenient_time_from_list.HOUR_INT=10 %}<option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option>{% ENDIF %} {% IF convenient_time_from_list.HOUR_INT=14 %}<option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option>{% ENDIF %} {% IF convenient_time_from_list.HOUR_INT=18 %}<option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option>{% ENDIF %} {% ENDFOR %} </select> до <select class="time_to form-select" name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} {% IF convenient_time_to_list.HOUR_INT=15 %}<option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option>{% ENDIF %} {% IF convenient_time_to_list.HOUR_INT=18 %}<option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option>{% ENDIF %} {% IF convenient_time_to_list.HOUR_INT=22 %}<option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option>{% ENDIF %} {% ENDFOR %} </select> </div> </li>
#254
Отправлено 20 Июль 2016 - 10:50
чтобы их нельзя было выбрать
то есть именно этот диапазон)
#255
Отправлено 20 Июль 2016 - 13:55
Smailer (20 Июль 2016 - 10:50) писал:
чтобы их нельзя было выбрать
то есть именно этот диапазон)
В файле main.js найдите блок
var date = new Date(); if(date.getHours() > 12 && date.getHours() < 23) { date.setDate(date.getDate() + 2); } $("#deliveryConvenientDate").datepicker({ dayNames : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText : 'Готово', currentText : 'Сегодня' , duration : '', monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange : "-6:+6", dateFormat : 'dd.mm.yy', minDate : date, firstDay : 1, showOtherMonths: true, selectOtherMonths: true, beforeShowDay : function(date) {return([date.getDay() == 2 || date.getDay() == 5, ''])} });и замените его на
var disabledDays = ["7-29-2016","8-5-2016"]; function disableAllTheseDays(date) { var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); for (i = 0; i < disabledDays.length; i++) { if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) { return [false]; }else{ return([date.getDay() == 2 || date.getDay() == 5, '']) } } return [true]; } var date = new Date(); if(date.getHours() > 12 && date.getHours() < 23) { date.setDate(date.getDate() + 2); } $("#deliveryConvenientDate").datepicker({ dayNames: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText: 'Готово', currentText: 'Сегодня' , duration: '', monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange: "-6:+6", dateFormat: 'dd.mm.yy', minDate: date, firstDay: 1, showOtherMonths: true, selectOtherMonths: true, beforeShowDay: disableAllTheseDays });
#256
Отправлено 20 Июль 2016 - 15:52
Stasya (20 Июль 2016 - 13:55) писал:
var date = new Date(); if(date.getHours() > 12 && date.getHours() < 23) { date.setDate(date.getDate() + 2); } $("#deliveryConvenientDate").datepicker({ dayNames : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText : 'Готово', currentText : 'Сегодня' , duration : '', monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange : "-6:+6", dateFormat : 'dd.mm.yy', minDate : date, firstDay : 1, showOtherMonths: true, selectOtherMonths: true, beforeShowDay : function(date) {return([date.getDay() == 2 || date.getDay() == 5, ''])} });и замените его на
var disabledDays = ["7-29-2016","8-5-2016"]; function disableAllTheseDays(date) { var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); for (i = 0; i < disabledDays.length; i++) { if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) { return [false]; }else{ return([date.getDay() == 2 || date.getDay() == 5, '']) } } return [true]; } var date = new Date(); if(date.getHours() > 12 && date.getHours() < 23) { date.setDate(date.getDate() + 2); } $("#deliveryConvenientDate").datepicker({ dayNames: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText: 'Готово', currentText: 'Сегодня' , duration: '', monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange: "-6:+6", dateFormat: 'dd.mm.yy', minDate: date, firstDay: 1, showOtherMonths: true, selectOtherMonths: true, beforeShowDay: disableAllTheseDays });
Stasya (20 Июль 2016 - 13:55) писал:
var date = new Date(); if(date.getHours() > 12 && date.getHours() < 23) { date.setDate(date.getDate() + 2); } $("#deliveryConvenientDate").datepicker({ dayNames : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText : 'Готово', currentText : 'Сегодня' , duration : '', monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange : "-6:+6", dateFormat : 'dd.mm.yy', minDate : date, firstDay : 1, showOtherMonths: true, selectOtherMonths: true, beforeShowDay : function(date) {return([date.getDay() == 2 || date.getDay() == 5, ''])} });и замените его на
var disabledDays = ["7-29-2016","8-5-2016"]; function disableAllTheseDays(date) { var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); for (i = 0; i < disabledDays.length; i++) { if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) { return [false]; }else{ return([date.getDay() == 2 || date.getDay() == 5, '']) } } return [true]; } var date = new Date(); if(date.getHours() > 12 && date.getHours() < 23) { date.setDate(date.getDate() + 2); } $("#deliveryConvenientDate").datepicker({ dayNames: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText: 'Готово', currentText: 'Сегодня' , duration: '', monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange: "-6:+6", dateFormat: 'dd.mm.yy', minDate: date, firstDay: 1, showOtherMonths: true, selectOtherMonths: true, beforeShowDay: disableAllTheseDays });
почти все отлично только почему то 5 Августа не дсотупно но при это доступно 3.08 нужно хотябы чтобы 3.08 го небыло а 5 ое было
#257
Отправлено 20 Июль 2016 - 18:24
Smailer (20 Июль 2016 - 15:52) писал:
var disabledDays = ["7-29-2016","8-5-2016"];
Дата здесь записана в формате месяц- число-год
Т.е. Вам нужно в этой строке заменить дату на "8-3-2016". Если Вы хотите добавить еще какую-либо дату, вам нужно через запятую, в кавычках указать ее в том же формате ("м-д-г").
#258
Отправлено 18 Август 2016 - 10:53
Перечитал всю ветку сделал изменения, но они не появились на сайте, а именно:
Вставил код в main.js для задания интервала в рамках 3 часа, но интервал так и не задаётся:
$(function () {
$('[name="form[delivery][convenient_date]"]').attr('readonly', true);
$('[name="form[delivery][convenient_time_from]"]').change(function () {
var timeFrom = $(this).val();
var timeInterval = 3;
$('[name="form[delivery][convenient_time_to]"] option').each(function () {
$(this).removeAttr('disabled');
if (parseInt($(this).val()) < (parseInt(timeFrom) + timeInterval)) {
$(this).attr('disabled', true);
}
}).filter(':first').attr('selected', true);
});
});
Далее вставил код в main.js для невозможности выбора более раннего времени "до" если выбрано время "с", но время не слушается.
$(function(){
$('.from_date').change(function(){
var from_date = parseInt($(this).val());
$(".to_date option").each(function(){
var to_date = parseInt($(this).val());
if(to_date < from_date){
$(this).prop('disabled', true);
}
});
}).trigger('change');
});
#259
Отправлено 19 Август 2016 - 06:37
#260
Отправлено 19 Август 2016 - 10:24
frog53 (18 Август 2016 - 10:53) писал:
Перечитал всю ветку сделал изменения, но они не появились на сайте, а именно:
Вставил код в main.js для задания интервала в рамках 3 часа, но интервал так и не задаётся:
$(function () {
$('[name="form[delivery][convenient_date]"]').attr('readonly', true);
$('[name="form[delivery][convenient_time_from]"]').change(function () {
var timeFrom = $(this).val();
var timeInterval = 3;
$('[name="form[delivery][convenient_time_to]"] option').each(function () {
$(this).removeAttr('disabled');
if (parseInt($(this).val()) < (parseInt(timeFrom) + timeInterval)) {
$(this).attr('disabled', true);
}
}).filter(':first').attr('selected', true);
});
});
Далее вставил код в main.js для невозможности выбора более раннего времени "до" если выбрано время "с", но время не слушается.
$(function(){
$('.from_date').change(function(){
var from_date = parseInt($(this).val());
$(".to_date option").each(function(){
var to_date = parseInt($(this).val());
if(to_date < from_date){
$(this).prop('disabled', true);
}
});
}).trigger('change');
});
Здравствуйте. Вы хотите чтобы покупатель мог выбрать время С, но тогда время До было не раньше чем + 3 и более часов. Например, если покупатель выбирает с 14:00, то в поле До можно было бы выбрать только 17:00 и позднее, т.е. +3 часа ко времени С. Если я Вас правильно поняла, то в таком случае Вам необходимо в шаблоне Быстрый заказ найти строки
<!-- Если поле даты доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME < 3 %}и перед ними вставить блок
<script> function fromTimeBlock(){ var from_date = parseInt($('.from_date').val()); $(".to_date option").each(function(){ var to_date = parseInt($(this).val()); console.log(to_date); if(to_date < (from_date + 3)){ $(this).attr('disabled', 'disabled'); } }); } </script>Далее находим строку
<select class="inputText" name="form[delivery][convenient_time_from]">и заменяем ее на
<select class="inputText from_date" name="form[delivery][convenient_time_from]" onchange="fromTimeBlock()">
Так же найдем строку
<select class="inputText" name="form[delivery][convenient_time_to]">и заменим ее на
<select class="inputText to_date" name="form[delivery][convenient_time_to]">
Скажите, пожалуйста, правильно ли я Вас поняла и все ли это изменения касаемые Даты и Время доставки?
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных