c <select name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {% ENDFOR %} </select> до <select name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {% ENDFOR %} </select>
Как Ограничить Время Доставки?
#1
Отправлено 14 Июль 2012 - 21:25
#2
Отправлено 17 Июль 2012 - 06:35
c <select name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} {%IF convenient_time_from_list.HOUR_INT>11%}{%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>11%}{%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>
#3
Отправлено 18 Июль 2012 - 10:38
#4
Отправлено 21 Ноябрь 2012 - 00:42
#5
Отправлено 21 Ноябрь 2012 - 09:48
mnbv2005 (21 Ноябрь 2012 - 00:42) писал:
#6
Отправлено 22 Ноябрь 2012 - 06:37
Я добавлять не хочу поля, я хочу ограничить время! На данный момент покупатель может выбрать - доставка с 1.00, с 2.00....с 24.00 и до 1.00, до 2.00....до 24.00! Я хочу уменьшить выбор покупателя - с 9.00, с 14.00 и до 14.00, до 20.00!
Или может быть есть какой другой вариант?
При совершении покупки покупатели делают очень маленький временной диапазон и каждый раз приходиться объяснять, что заказ не один, что в Москве пробки и т.п.
#7
Отправлено 22 Ноябрь 2012 - 11:14
mnbv2005 (22 Ноябрь 2012 - 06:37) писал:
Я добавлять не хочу поля, я хочу ограничить время! На данный момент покупатель может выбрать - доставка с 1.00, с 2.00....с 24.00 и до 1.00, до 2.00....до 24.00! Я хочу уменьшить выбор покупателя - с 9.00, с 14.00 и до 14.00, до 20.00!
Или может быть есть какой другой вариант?
При совершении покупки покупатели делают очень маленький временной диапазон и каждый раз приходиться объяснять, что заказ не один, что в Москве пробки и т.п.
Вам нужно зайти в Панель управления -> Сайт -> Редактор тем -> файл Оформление заказа
Найдите блок
<!-- Если запрашивается поле удобного времени доставки --> {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME<3 %} <tr> <td width="10%"> <label for="deliveryConvenientDate">Удобное время доставки:{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<span class="red">*</span>{% ENDIF %}</label> </td> <td width="90%"> <input id="deliveryConvenientDate" name="form[delivery][convenient_date]" value="{ORDER_FORM_DELIVERY_CONVENIENT_DATE}" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %} /> c <select name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {% ENDFOR %} </select> до <select name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {% ENDFOR %} </select> </td> </tr> {% ENDIF %}и замените на
<!-- Если запрашивается поле удобного времени доставки --> {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME<3 %} <tr> <td width="10%"> <label for="deliveryConvenientDate">Удобное время доставки:{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<span class="red">*</span>{% ENDIF %}</label> </td> <td width="90%"> <input id="deliveryConvenientDate" name="form[delivery][convenient_date]" value="{ORDER_FORM_DELIVERY_CONVENIENT_DATE}" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %} /> c <select name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} {% IF convenient_time_from_list.HOUR_INT=9 %}<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 %} {% ENDFOR %} </select> до <select name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} {%IF convenient_time_to_list.HOUR_INT=14%}<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=20%}<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> </td> </tr> {% ENDIF %}
#8
Отправлено 22 Ноябрь 2012 - 20:55
#9
Отправлено 15 Январь 2013 - 23:08
Возможно ли сделать так, что если клиент сделал заказ, например, в 17.30, то в разделе "Оформление заказа" в поле "Удобное время доставки" время "С" указывалось с отступом 1 или 2 часа от времени заказа (с округлением до часов можно)? То есть в 17.30 заказал, а в поле Удобное время доставки в графе "С" можно выбрать начальное время интервала не ранее 20.00.
#10
Отправлено 15 Январь 2013 - 23:35
$(document).ready(function(){
добавить
if($('#deliveryConvenientDate').length) { var date = new Date(); $('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr("selected", "selected"); }
#11
Отправлено 15 Январь 2013 - 23:47
Vaccina (15 Январь 2013 - 23:35) писал:
$(document).ready(function(){
добавить
if($('#deliveryConvenientDate').length) { var date = new Date(); $('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr("selected", "selected"); }
Спасибо. Код добавил. Проверяю, начиная с 18.00 (в графе "С"), выдает ""Выберите другой интервал". А данный код увязан с текущим временем, ну в данном случае с московским?
#12
Отправлено 16 Январь 2013 - 04:24
#13
Отправлено 16 Январь 2013 - 08:43
Vaccina (16 Январь 2013 - 04:24) писал:
Проверил еще раз в режиме реального времени так сказать... Что-то не клеится...
1. Минимальный интервал доставки в размере 2-х часов действительно отрабатывается. Причем и в ту и в другую сторону. То есть, с какого бы пункта человек не начал заполнять удобное время (или "С", или "ПО"). За это огромное спасибо!
2. А вот "время отсчета" с какого человек может выбрать начала интервала доставки не зависит от текущего времени. На скриншотах это видно.
3. Почему, когда я ограничил возможный интервал доставки в с день с 9.00 до 23.00, у меня перед 9.00 появилось пустое поле?
#14
Отправлено 16 Январь 2013 - 10:16
Kengashop (16 Январь 2013 - 08:43) писал:
1. Минимальный интервал доставки в размере 2-х часов действительно отрабатывается. Причем и в ту и в другую сторону. То есть, с какого бы пункта человек не начал заполнять удобное время (или "С", или "ПО"). За это огромное спасибо!
2. А вот "время отсчета" с какого человек может выбрать начала интервала доставки не зависит от текущего времени. На скриншотах это видно.
ScreenShot 1.jpg ScreenShot 2.jpg ScreenShot 3.jpg
3. Почему, когда я ограничил возможный интервал доставки в с день с 9.00 до 23.00, у меня перед 9.00 появилось пустое поле?
if($('#deliveryConvenientDate').length) { var date = new Date(); $('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr("selected", "selected"); $('#deliveryConvenientDate').next().find('[value]:not([value="' + (date.getHours() + 2) + '"])').attr("disabled", "disabled"); }
#15
Отправлено 16 Январь 2013 - 11:19
Koderhan (16 Январь 2013 - 10:16) писал:
if($('#deliveryConvenientDate').length) { var date = new Date(); $('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr("selected", "selected"); $('#deliveryConvenientDate').next().find('[value]:not([value="' + (date.getHours() + 2) + '"])').attr("disabled", "disabled"); }
А после какого кода его нужно вставить? Вставил в самом конце... но ничего не произошло...
#16
Отправлено 16 Январь 2013 - 12:36
Kengashop (16 Январь 2013 - 11:19) писал:
Найти ранее добавленный код:
if($('#deliveryConvenientDate').length) { var date = new Date(); $('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr("selected", "selected"); }Заменить:
if($('#deliveryConvenientDate').length) { var date = new Date(); $('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr("selected", "selected"); $('#deliveryConvenientDate').next().find('[value]:not([value="' + (date.getHours() + 2) + '"])').attr("disabled", "disabled"); }
#17
Отправлено 16 Январь 2013 - 12:40
#18
Отправлено 16 Январь 2013 - 14:38
Koderhan (16 Январь 2013 - 12:36) писал:
Найти ранее добавленный код:
if($('#deliveryConvenientDate').length) { var date = new Date(); $('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr("selected", "selected"); }Заменить:
if($('#deliveryConvenientDate').length) { var date = new Date(); $('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr("selected", "selected"); $('#deliveryConvenientDate').next().find('[value]:not([value="' + (date.getHours() + 2) + '"])').attr("disabled", "disabled"); }
Видимо я плохо формулирую запрос и мы соответственно не очень хорошо друг друга понимаем. Попытаюсь уложить у себя в голове и сформулировать еще раз. Итак.
1. Нужно, чтобы при выборе времени доставки клиенту выдавалось начальное время интервала "С", начиная с +2 часов от текущего местного времени. То есть заказывает клиент в 12 часов, а в поле "С" у него активно время, начиная только с 14 часов и до конца интервала доставки с учетом двух часов интервала. Доставка осуществляется до 23 часов, соответственно в поле "С" у клиента в 12 часов местного времени активно время с 14 до 21 часа.
2. При выборе времени в поле "ПО" активный для клиента временной интервал начинался бы +2 часа от времени "С" и соответственно до конца доставки (до 23 часов).
3. То есть если мне заказали товар в 12 часов, то я должен его доставить клиенту самое быстрое с 14 до 16 часов, либо с 14 до 17, 18, 19, 20, 21, 22, 23 часов, но не ранее, чем с 14 до 16 часов и не позднее 23 часов.
4. Лучше, конечно, если при этом активное и неактивное время выделялось цветом в том числе.
А теперь соответственно опишу ситуацию сейчас.
1) доходишь до шага 2 и выбираешь дату доставки - все здесь ок.
2) выбираешь в поле "С" время - при этом текущее время 16.55, а выдается 18.00, а должно выдавать все в интервале с 19 до 21 часа
3) потом выбираешь время "ПО", здесь поначалу вроде все правильно, 2 часа интервала от времени "С" полностью соблюдаются
4) а вот потом ты берешь и переходишь снова в поле "С" и ставишь там время нааамного раньше текущего и оформляешь заказ. В итоге получается вот это!
КАК БЫТЬ? Я ЧТО-ТО НЕ ТАК ДЕЛАЮ?
#19
Отправлено 16 Январь 2013 - 18:17
Надеюсь я правильно вас понял.
Попробуйте, пожалуйста код:
if($('#deliveryConvenientDate').length) { var date = new Date(); $('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr("selected", "selected"); t=$('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr('value'); t=parseInt(t); $('#deliveryConvenientDate').next().find('option').each(function(){ f=$(this).attr('value'); f=parseInt(f); if(f<t) { $(this).attr('disabled','disabled'); } }); }вставить в файл main.js.
После кода:
$(document).ready(function(){
#20
Отправлено 16 Январь 2013 - 21:18
Koderhan (16 Январь 2013 - 18:17) писал:
Надеюсь я правильно вас понял.
Попробуйте, пожалуйста код:
if($('#deliveryConvenientDate').length) { var date = new Date(); $('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr("selected", "selected"); t=$('#deliveryConvenientDate').next().find('[value="' + (date.getHours() + 2) + '"]').attr('value'); t=parseInt(t); $('#deliveryConvenientDate').next().find('option').each(function(){ f=$(this).attr('value'); f=parseInt(f); if(f<t) { $(this).attr('disabled','disabled'); } }); }вставить в файл main.js.
После кода:
$(document).ready(function(){
))))))))))))))) спасибо... вставил...)
Но что-то привязка к текущему времени не работает... Все остальное вроде работает корректно, но проверил я это все по последующим дням. А вот 16 число... то есть сегодня (по крайней мере у меня) не работает... причем и привязка к текущему времени и все остальное. 16 числа все осталось также, как было в моем сообщении, когда я описывал всю ситуацию подробно.
Вот такие интервалы выдает мне система, с учетом того, что время первый час ночи 17 числа...
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных