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


Как Ограничить Время Доставки?


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

#41 Koderhan

Koderhan

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

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

Отправлено 14 Март 2013 - 08:51

<!-- Если запрашивается поле удобного времени доставки  -->
{% 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=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 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=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=21%}<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 %}


#42 eee1973

eee1973

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

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

Отправлено 14 Март 2013 - 09:26

выдает ошибку Ошибка компиляции шаблона. Не закрытый тег «IF» строка 257

#43 eee1973

eee1973

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

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

Отправлено 14 Март 2013 - 09:32

Поторопился немного....Спасибо, все работает!

#44 butik-cvetoff

butik-cvetoff

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

  • Пользователи
  • PipPip
  • 14 сообщений
  • ГородЕкатеринбург

Отправлено 11 Июль 2013 - 11:35

Добрый день. Я полное дерево с точки зрения кода, поэтому нуждаюсь в помощи.
сайт бутик-цветофф.рф
1. Как добавить 2 поля в блок адрес доставки? Поля:
Получатель:
Телефон получателя:
У меня магазин цветов и букетов и ситуация покупки предполагает доставку букета не покупателю, а тому, кому он захочет его подарить.
Соответственно эти поля должны быть видны и в админке и в самом заказе.

2. В начале каждого списка времени доставки есть белый интервал (пустой слот). Как это можно поправить?
Изображение
Вставил вот такой код:
c <select name="form[delivery][convenient_time_from]">
<option></option>
  {% FOR convenient_time_from_list %}
{%IF convenient_time_from_list.HOUR_INT>8%}{%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>8%}{%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:00 по местному времени, то доставка заказа доступна начиная с +3 часа от момента оформления заказа, и до 23.00 текущего дня и в нормально режиме с 9 до 23 все последующие дни.
Если клиент делает заказ после 18.00 то доставка заказа доступна только на следующий день и все последующие начиная с 9 и до 23.

На данный момент стоит вот такой код:

function update_select_time(interval_from, interval_to) {
if($('#deliveryConvenientDate').length) {
var date = new Date();
interval_from = (!interval_from) ? 3 : interval_from;
interval_to = (!interval_to) ? 1 : interval_to;
var hour = ((date.getMinutes() > 30) ? (date.getHours() + 1) : date.getHours());
if(!hour) {
hour = 24;
}
var max_hour = 24;
var from_hour = hour + interval_from;
if((hour + interval_from) > max_hour) {
from_hour = (hour + interval_from) - max_hour;
}
var to_hour = from_hour + interval_to;
if((from_hour + interval_to) > max_hour) {
to_hour = (from_hour + interval_to) - max_hour;
}
var from_select = $('#deliveryConvenientDate').parent().find('[name="form[delivery][convenient_time_from]"]');
$(from_select).find('[value="' + from_hour + '"]').attr("selected", "selected");
$(from_select).find('option').each(function() {
if(parseInt($(this).val()) < from_hour) {
$(this).attr('disabled','disabled').hide();
}
});
var to_select = $('#deliveryConvenientDate').parent().find('[name="form[delivery][convenient_time_to]"]');
$(to_select).find('[value="' + to_hour + '"]').attr("selected", "selected");
$(to_select).find('option').each(function() {
if(parseInt($(this).val()) < to_hour) {
$(this).attr('disabled','disabled').hide();
}
});
}
}
function update_change_date() {
var select = parseFloat($('#deliveryConvenientDate').val().replace(/\./g, ''));
var date = new Date();
var month = (date.getMonth() + 1) < 10 ? ('0' + (date.getMonth() + 1)) : (date.getMonth() + 1);
var current = parseFloat(date.getDate() + '' + month + '' + date.getFullYear() + '');
if(select < current) {
$('#deliveryConvenientDate').parent().find('select option').attr('disabled','disabled').hide();
}
else if(select > current) {
$('#deliveryConvenientDate').parent().find('select option').removeAttr('disabled').show();
}
else {
update_select_time();
}
}
update_select_time();
$('#deliveryConvenientDate').change(function() {
update_change_date();
});
$('#deliveryId141519').click(function() {
update_select_time();
update_change_date();
});
$('#deliveryId140272').click(function() {
update_select_time(2, 1);
update_change_date();
});

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

#45 Koderhan

Koderhan

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

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

Отправлено 11 Июль 2013 - 12:09

1. На страницу доставки к сожалению нельзя добавлять свои поля для ввода. Можно только переименовать существующие.
В основных настройках вам нужно включить эти поля. ScreenShot 742.png
т.е Теперь почтовый индекс это номер получателя. Область это имя получателя.
В файле "Оформление заказа" нужно изменить код:
<!-- Если поле почтового индекса запрашивается -->
				{% IF SETTINGS_ORDER_FIELDS_ZIP_CODE<3 %}
				  <tr>
					<td width="10%">
					  <label for="deliveryZipCode">Почтовый индекс:{% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}<span class="red">*</span>{% ENDIF %}</label>
					</td>
					<td width="90%">
					  <input id="deliveryZipCode" name="form[delivery][zip_code]" value="{ORDER_FORM_DELIVERY_ZIP_CODE}" minlength="5" maxlength="6" class="digits {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}required{% ENDIF %}" />
					</td>
				  </tr>
				{% ENDIF %}
			   
				<!-- Если поле области запрашивается -->
				{% IF SETTINGS_ORDER_FIELDS_REGION<3 %}
				  <tr>
					<td width="10%">
					  <label for="deliveryRegion">Область:{% IF SETTINGS_ORDER_FIELDS_REGION=1 %}<span class="red">*</span>{% ENDIF %}</label>
					</td>
					<td width="90%">
					  <input id="deliveryRegion" name="form[delivery][region]" value="{ORDER_FORM_DELIVERY_REGION}" {% IF SETTINGS_ORDER_FIELDS_REGION=1 %}class="required"{% ENDIF %} />
					</td>
				  </tr>
				{% ENDIF %}
На код:
<!-- Если поле почтового индекса запрашивается -->
				{% IF SETTINGS_ORDER_FIELDS_ZIP_CODE<3 %}
				  <tr>
					<td width="10%">
				   
					  <label for="deliveryZipCode">Телефон получателя:{% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}<span class="red">*</span>{% ENDIF %}</label>
					</td>
					<td width="90%">
					  <input id="deliveryZipCode" name="form[delivery][zip_code]" value="{ORDER_FORM_DELIVERY_ZIP_CODE}" minlength="5" maxlength="6" class="digits {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}required{% ENDIF %}" />
					</td>
				  </tr>
				{% ENDIF %}
			   
				<!-- Если поле области запрашивается -->
				{% IF SETTINGS_ORDER_FIELDS_REGION<3 %}
				  <tr>
					<td width="10%">
					  <label for="deliveryRegion">Имя получателья:{% IF SETTINGS_ORDER_FIELDS_REGION=1 %}<span class="red">*</span>{% ENDIF %}</label>
					</td>
					<td width="90%">
					  <input id="deliveryRegion" name="form[delivery][region]" value="{ORDER_FORM_DELIVERY_REGION}" {% IF SETTINGS_ORDER_FIELDS_REGION=1 %}class="required"{% ENDIF %} />
					</td>
				  </tr>
				{% ENDIF %}
2. Это пустое поле нужно для того чтобы пользователь обязательно заполнил удобное время доставки.

#46 butik-cvetoff

butik-cvetoff

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

  • Пользователи
  • PipPip
  • 14 сообщений
  • ГородЕкатеринбург

Отправлено 11 Июль 2013 - 12:51

Большое спасибо. С 1 пунктом все сработало.
С 2 пунктом понятно :D

Помогите пожалуйста еще вот с этим пунктиком:

Необходимо ограничить интервалы доставки следующим образом.

Если клиент делает заказ до 18:00 по местному времени, то доставка заказа доступна начиная с +3 часа от момента оформления заказа, и до 23.00 текущего дня и в нормально режиме с 9 до 23 все последующие дни.
Если клиент делает заказ после 18.00 то доставка заказа доступна только на следующий день и все последующие начиная с 9 и до 23.

На данный момент стоит вот такой код:

function update_select_time(interval_from, interval_to) {
if($('#deliveryConvenientDate').length) {
var date = new Date();
interval_from = (!interval_from) ? 3 : interval_from;
interval_to = (!interval_to) ? 1 : interval_to;
var hour = ((date.getMinutes() > 30) ? (date.getHours() + 1) : date.getHours());
if(!hour) {
hour = 24;
}
var max_hour = 24;
var from_hour = hour + interval_from;
if((hour + interval_from) > max_hour) {
from_hour = (hour + interval_from) - max_hour;
}
var to_hour = from_hour + interval_to;
if((from_hour + interval_to) > max_hour) {
to_hour = (from_hour + interval_to) - max_hour;
}
var from_select = $('#deliveryConvenientDate').parent().find('[name="form[delivery][convenient_time_from]"]');
$(from_select).find('[value="' + from_hour + '"]').attr("selected", "selected");
$(from_select).find('option').each(function() {
if(parseInt($(this).val()) < from_hour) {
$(this).attr('disabled','disabled').hide();
}
});
var to_select = $('#deliveryConvenientDate').parent().find('[name="form[delivery][convenient_time_to]"]');
$(to_select).find('[value="' + to_hour + '"]').attr("selected", "selected");
$(to_select).find('option').each(function() {
if(parseInt($(this).val()) < to_hour) {
$(this).attr('disabled','disabled').hide();
}
});
}
}
function update_change_date() {
var select = parseFloat($('#deliveryConvenientDate').val().replace(/\./g, ''));
var date = new Date();
var month = (date.getMonth() + 1) < 10 ? ('0' + (date.getMonth() + 1)) : (date.getMonth() + 1);
var current = parseFloat(date.getDate() + '' + month + '' + date.getFullYear() + '');
if(select < current) {
$('#deliveryConvenientDate').parent().find('select option').attr('disabled','disabled').hide();
}
else if(select > current) {
$('#deliveryConvenientDate').parent().find('select option').removeAttr('disabled').show();
}
else {
update_select_time();
}
}
update_select_time();
$('#deliveryConvenientDate').change(function() {
update_change_date();
});
$('#deliveryId141519').click(function() {
update_select_time();
update_change_date();
});
$('#deliveryId140272').click(function() {
update_select_time(2, 1);
update_change_date();
});

#47 Сake

Сake

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

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

Отправлено 12 Июль 2013 - 01:25

Попробуйте сделать следующее - удалите ваш код

function update_select_time(interval_from, interval_to) {
if($('#deliveryConvenientDate').length) {
var date = new Date();
interval_from = (!interval_from) ? 3 : interval_from;
interval_to = (!interval_to) ? 1 : interval_to;
var hour = ((date.getMinutes() > 30) ? (date.getHours() + 1) : date.getHours());
if(!hour) {
hour = 24;
}
var max_hour = 24;
var from_hour = hour + interval_from;
if((hour + interval_from) > max_hour) {
from_hour = (hour + interval_from) - max_hour;
}
var to_hour = from_hour + interval_to;
if((from_hour + interval_to) > max_hour) {
to_hour = (from_hour + interval_to) - max_hour;
}
var from_select = $('#deliveryConvenientDate').parent().find('[name="form[delivery][convenient_time_from]"]');
$(from_select).find('[value="' + from_hour + '"]').attr("selected", "selected");
$(from_select).find('option').each(function() {
if(parseInt($(this).val()) < from_hour) {
$(this).attr('disabled','disabled').hide();
}
});
var to_select = $('#deliveryConvenientDate').parent().find('[name="form[delivery][convenient_time_to]"]');
$(to_select).find('[value="' + to_hour + '"]').attr("selected", "selected");
$(to_select).find('option').each(function() {
if(parseInt($(this).val()) < to_hour) {
$(this).attr('disabled','disabled').hide();
}
});
}
}
function update_change_date() {
var select = parseFloat($('#deliveryConvenientDate').val().replace(/\./g, ''));
var date = new Date();
var month = (date.getMonth() + 1) < 10 ? ('0' + (date.getMonth() + 1)) : (date.getMonth() + 1);
var current = parseFloat(date.getDate() + '' + month + '' + date.getFullYear() + '');
if(select < current) {
$('#deliveryConvenientDate').parent().find('select option').attr('disabled','disabled').hide();
}
else if(select > current) {
$('#deliveryConvenientDate').parent().find('select option').removeAttr('disabled').show();
}
else {
update_select_time();
}
}
update_select_time();
$('#deliveryConvenientDate').change(function() {
update_change_date();
});
$('#deliveryId141519').click(function() {
update_select_time();
update_change_date();
});
$('#deliveryId140272').click(function() {
update_select_time(2, 1);
update_change_date();
});

далее в main.js найдите

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

и замените на

var date = new Date();
   if(date.getHours() > 18 || date.getHours() < 23) {
	  date.setDate(date.getDate() + 1);
   }
   $("#deliveryConvenientDate").datepicker({
   dayNames	  : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
  dayNamesMin	: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
  closeText	  : 'Готово',
  currentText	: 'Сегодня' ,
  duration	  : '',
  monthNames	: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
  monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
  yearRange	  : "-6:+6",
  dateFormat	: 'dd.mm.yy',
  minDate		 : date,
  firstDay	  : 1,
		onSelect:	   function(select, obj) {
		   var date = new Date();
		   var min_hour = date.getHours();
		   if(date.getHours() < 18 && date.getHours() >= 9) {
			 min_hour = date.getHours() + 3;
		   }
		   if(parseInt(obj.currentDay) > date.getDate()) {
			 min_hour = 9;
		   }
		   $('[name="form[delivery][convenient_time_from]"] option').each(function() {
			  $(this).attr('disabled', 'disabled').hide();
			  if(parseInt($(this).val()) >= min_hour) {
				 $(this).removeAttr('disabled').show();
			  }
		   });
		   $('[name="form[delivery][convenient_time_to]"] option').each(function() {
			  $(this).attr('disabled', 'disabled').hide();
			  if(parseInt($(this).val()) >= (min_hour + 1)) {
				 $(this).removeAttr('disabled').show();
			  }
		   });
		}
});


#48 butik-cvetoff

butik-cvetoff

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

  • Пользователи
  • PipPip
  • 14 сообщений
  • ГородЕкатеринбург

Отправлено 12 Июль 2013 - 09:39

Удалил старый код и поставил код из поста выше. Теперь перестал работать календарь (селектор даты). При попытке отправить перейти на следующий шаг не пускает, говорит выберите дату.

В редакторе файла на последней строке выдает ошибку: Expected ')' and instead saw ". Missing semicolon. Unexpected 'ъ'.

Просмотр сообщенияСake (12 Июль 2013 - 01:25) писал:

Попробуйте сделать следующее - удалите ваш код

function update_select_time(interval_from, interval_to) {
if($('#deliveryConvenientDate').length) {
var date = new Date();
interval_from = (!interval_from) ? 3 : interval_from;
interval_to = (!interval_to) ? 1 : interval_to;
var hour = ((date.getMinutes() > 30) ? (date.getHours() + 1) : date.getHours());
if(!hour) {
hour = 24;
}
var max_hour = 24;
var from_hour = hour + interval_from;
if((hour + interval_from) > max_hour) {
from_hour = (hour + interval_from) - max_hour;
}
var to_hour = from_hour + interval_to;
if((from_hour + interval_to) > max_hour) {
to_hour = (from_hour + interval_to) - max_hour;
}
var from_select = $('#deliveryConvenientDate').parent().find('[name="form[delivery][convenient_time_from]"]');
$(from_select).find('[value="' + from_hour + '"]').attr("selected", "selected");
$(from_select).find('option').each(function() {
if(parseInt($(this).val()) < from_hour) {
$(this).attr('disabled','disabled').hide();
}
});
var to_select = $('#deliveryConvenientDate').parent().find('[name="form[delivery][convenient_time_to]"]');
$(to_select).find('[value="' + to_hour + '"]').attr("selected", "selected");
$(to_select).find('option').each(function() {
if(parseInt($(this).val()) < to_hour) {
$(this).attr('disabled','disabled').hide();
}
});
}
}
function update_change_date() {
var select = parseFloat($('#deliveryConvenientDate').val().replace(/\./g, ''));
var date = new Date();
var month = (date.getMonth() + 1) < 10 ? ('0' + (date.getMonth() + 1)) : (date.getMonth() + 1);
var current = parseFloat(date.getDate() + '' + month + '' + date.getFullYear() + '');
if(select < current) {
$('#deliveryConvenientDate').parent().find('select option').attr('disabled','disabled').hide();
}
else if(select > current) {
$('#deliveryConvenientDate').parent().find('select option').removeAttr('disabled').show();
}
else {
update_select_time();
}
}
update_select_time();
$('#deliveryConvenientDate').change(function() {
update_change_date();
});
$('#deliveryId141519').click(function() {
update_select_time();
update_change_date();
});
$('#deliveryId140272').click(function() {
update_select_time(2, 1);
update_change_date();
});

далее в main.js найдите

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

и замените на

var date = new Date();
if(date.getHours() > 18 || date.getHours() < 23) {
	 date.setDate(date.getDate() + 1);
}
$("#deliveryConvenientDate").datepicker({
dayNames	 : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
closeText	 : 'Готово',
currentText : 'Сегодня' ,
duration	 : '',
monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
yearRange	 : "-6:+6",
dateFormat : 'dd.mm.yy',
minDate		 : date,
firstDay	 : 1,
	 onSelect:	 function(select, obj) {
		 var date = new Date();
		 var min_hour = date.getHours();
		 if(date.getHours() < 18 && date.getHours() >= 9) {
			 min_hour = date.getHours() + 3;
		 }
		 if(parseInt(obj.currentDay) > date.getDate()) {
			 min_hour = 9;
		 }
		 $('[name="form[delivery][convenient_time_from]"] option').each(function() {
			 $(this).attr('disabled', 'disabled').hide();
			 if(parseInt($(this).val()) >= min_hour) {
				 $(this).removeAttr('disabled').show();
			 }
		 });
		 $('[name="form[delivery][convenient_time_to]"] option').each(function() {
			 $(this).attr('disabled', 'disabled').hide();
			 if(parseInt($(this).val()) >= (min_hour + 1)) {
				 $(this).removeAttr('disabled').show();
			 }
		 });
	 }
});

Везде где можно было поменять я все поменял. Осталось только изменить названия этих полей в админке и шаблонах писем, только не могу найти где это делать. Помогите пожалуйста.

Просмотр сообщенияbutik-cvetoff (11 Июль 2013 - 11:35) писал:

Добрый день. Я полное дерево с точки зрения кода, поэтому нуждаюсь в помощи.
сайт бутик-цветофф.рф
1. Как добавить 2 поля в блок адрес доставки? Поля:
Получатель:
Телефон получателя:
У меня магазин цветов и букетов и ситуация покупки предполагает доставку букета не покупателю, а тому, кому он захочет его подарить.
Соответственно эти поля должны быть видны и в админке и в самом заказе.

Просмотр сообщенияKoderhan (11 Июль 2013 - 12:09) писал:

1. На страницу доставки к сожалению нельзя добавлять свои поля для ввода. Можно только переименовать существующие.
В основных настройках вам нужно включить эти поля. Прикрепленный файл ScreenShot 742.png
т.е Теперь почтовый индекс это номер получателя. Область это имя получателя.
В файле "Оформление заказа" нужно изменить код:
<!-- Если поле почтового индекса запрашивается -->
			 {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE<3 %}
				 <tr>
				 <td width="10%">
					 <label for="deliveryZipCode">Почтовый индекс:{% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}<span class="red">*</span>{% ENDIF %}</label>
				 </td>
				 <td width="90%">
					 <input id="deliveryZipCode" name="form[delivery][zip_code]" value="{ORDER_FORM_DELIVERY_ZIP_CODE}" minlength="5" maxlength="6" class="digits {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}required{% ENDIF %}" />
				 </td>
				 </tr>
			 {% ENDIF %}
			
			 <!-- Если поле области запрашивается -->
			 {% IF SETTINGS_ORDER_FIELDS_REGION<3 %}
				 <tr>
				 <td width="10%">
					 <label for="deliveryRegion">Область:{% IF SETTINGS_ORDER_FIELDS_REGION=1 %}<span class="red">*</span>{% ENDIF %}</label>
				 </td>
				 <td width="90%">
					 <input id="deliveryRegion" name="form[delivery][region]" value="{ORDER_FORM_DELIVERY_REGION}" {% IF SETTINGS_ORDER_FIELDS_REGION=1 %}class="required"{% ENDIF %} />
				 </td>
				 </tr>
			 {% ENDIF %}
На код:
<!-- Если поле почтового индекса запрашивается -->
			 {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE<3 %}
				 <tr>
				 <td width="10%">
				
					 <label for="deliveryZipCode">Телефон получателя:{% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}<span class="red">*</span>{% ENDIF %}</label>
				 </td>
				 <td width="90%">
					 <input id="deliveryZipCode" name="form[delivery][zip_code]" value="{ORDER_FORM_DELIVERY_ZIP_CODE}" minlength="5" maxlength="6" class="digits {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}required{% ENDIF %}" />
				 </td>
				 </tr>
			 {% ENDIF %}
			
			 <!-- Если поле области запрашивается -->
			 {% IF SETTINGS_ORDER_FIELDS_REGION<3 %}
				 <tr>
				 <td width="10%">
					 <label for="deliveryRegion">Имя получателья:{% IF SETTINGS_ORDER_FIELDS_REGION=1 %}<span class="red">*</span>{% ENDIF %}</label>
				 </td>
				 <td width="90%">
					 <input id="deliveryRegion" name="form[delivery][region]" value="{ORDER_FORM_DELIVERY_REGION}" {% IF SETTINGS_ORDER_FIELDS_REGION=1 %}class="required"{% ENDIF %} />
				 </td>
				 </tr>
			 {% ENDIF %}
2. Это пустое поле нужно для того чтобы пользователь обязательно заполнил удобное время доставки.


#49 Taisia

Taisia

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

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

Отправлено 12 Июль 2013 - 19:55

Цитата

Везде где можно было поменять я все поменял. Осталось только изменить названия этих полей в админке и шаблонах писем, только не могу найти где это делать. Помогите пожалуйста.


если вы о коде который приводите ниже этого вашего сообщения то этот код надо искать в файле Оформление заказа (в сообщении ссылаются на этот файл )

#50 Taisia

Taisia

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

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

Отправлено 12 Июль 2013 - 20:31

что бы убрать ошибку в конце файла редактирования в конец кода допишите
});


#51 butik-cvetoff

butik-cvetoff

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

  • Пользователи
  • PipPip
  • 14 сообщений
  • ГородЕкатеринбург

Отправлено 12 Июль 2013 - 22:15

Просмотр сообщенияTaisia (12 Июль 2013 - 20:31) писал:

что бы убрать ошибку в конце файла редактирования в конец кода допишите
});
УРА, Теперь все работает. Огромное спасибо. ;) :D

Осталось только решить вопрос с 2 полями в заказе. Изменил во всех файлах в админке сайта названия полей
ИНДЕКС на Телефон получателя и поправил кол-во знаков
ОБЛАСТЬ на Имя получателя.

Только теперь вот такая беда. Когда заказчик получает письмо с подтверждением заказа, там поля без изменений, и выглядит оно вот так
Здравствуйте!

Благодарим Вас за покупку, оформленную на нашем сайте. Скоро мы свяжемся с Вами.

Карточка заказа:
Номер заказа 10127
Создан 12.07.2013 23:03:52
Сумма заказа 6 290 руб.
Контактное лицо Всеволод
Телефон для связи +791222000000
Email lalalaalal@mail.ru
Почтовый индекс 79122200000
Область Всеволод
Адрес доставки Степана Разина 29
Удобное время доставки 2013-07-14 c 9:00 до 10:00


Соответственно в админке сайта в заказе поля так же называются область и индекс вместо желаемых Получатель и Телефон получателя.

Помогите изменить названия этих полей хотябы в шаблонах писем. Огроменное спасибо.

Приношу извинения за то, что обсуждаю этот пунктик в этой теме, но так уж вышло так вот важный офтопик :rolleyes: .

#52 Сake

Сake

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

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

Отправлено 12 Июль 2013 - 23:59

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

#53 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 02 Декабрь 2013 - 20:43

Просмотр сообщенияVaccina (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> 
А, для Осени, возможно? Там совсем другой код. А главное, ограничить интервал, не давать выбрать время "По" с интервалом меньше 4 часов. Пробовала из этой темы, не получается. http://forum.storela...авка/#entry6016

#54 Сake

Сake

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

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

Отправлено 04 Декабрь 2013 - 02:20

Для темы "Осень" данный код по сути ничем не отличается. Возможно только отличие в виде inline стилей. Код который вы цитируете будет выглядеть аналогично

					 c
					 <select style="width:95px;margin-right:3px;" 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 style="width:95px;" 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>

как можно заметить появились только inline стили (style). Для ограничения времени или задания определенного интервала вы можете использовать код по ссылке указанный вами же. Возможно вы не верно вставили код или некорректно задали ограничение. Попробуйте проверить правильность вставленного вами кода, если ничего не получиться - сообщите, а кот в свою очередь не удаляйте.

#55 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

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

Просмотр сообщенияСake (04 Декабрь 2013 - 02:20) писал:

Для темы "Осень" данный код по сути ничем не отличается. Возможно только отличие в виде inline стилей. Код который вы цитируете будет выглядеть аналогично

					 c
					 <select style="width:95px;margin-right:3px;" 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 style="width:95px;" 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>

как можно заметить появились только inline стили (style). Для ограничения времени или задания определенного интервала вы можете использовать код по ссылке указанный вами же. Возможно вы не верно вставили код или некорректно задали ограничение. Попробуйте проверить правильность вставленного вами кода, если ничего не получиться - сообщите, а кот в свою очередь не удаляйте.
Понавставляла кодов и в оформление заказа, и в main.js Ничего не изменилось, главное, хоть бы не испортить

#56 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 10 Декабрь 2013 - 00:17

Просмотр сообщенияСake (04 Декабрь 2013 - 02:20) писал:

Для темы "Осень" данный код по сути ничем не отличается. Возможно только отличие в виде inline стилей. Код который вы цитируете будет выглядеть аналогично

как можно заметить появились только inline стили (style). Для ограничения времени или задания определенного интервала вы можете использовать код по ссылке указанный вами же. Возможно вы не верно вставили код или некорректно задали ограничение. Попробуйте проверить правильность вставленного вами кода, если ничего не получиться - сообщите, а кот в свою очередь не удаляйте.
Сake, помогите пожалуйста довести до ума.
Т. к. у меня только Быстрый заказ, то изменения все там и делала.
Ограничение времени с 11:00 до 22:00 - получилось.
Интервал 4 часа - получилось.
1) Только
// Функция сверки правильности дат
function OrderDeliveryTimeVerify () {
	 if(OrderDeliveryTimeTo.val() > 0 && OrderDeliveryTimeFrom.val() > 0 && OrderDeliveryTimeTo.val() - OrderDeliveryTimeMinRange < OrderDeliveryTimeFrom.val()) {
		 alert('Минимальный диапазон для доставки составляет ' + OrderDeliveryTimeMinRange + ' часа. Пожалуйста укажите другое время.');
		 return false;
	 } else {
		 return true;
	 }
}

это не работает. Нужно, чтобы предупреждение показывалось "Минимальный диапазон 4 часа!", а то может быть непонятно, почему не работают кнопки выбора времени ДО, если задают меньший диапазон. А хорошо бы и цифры бледными сделать у недоступного диапазона, но это сложно, наверное.

2) Никак не получается сделать выбор даты на следующий день или даже через день (перед Новым Годом понадобится), сейчас можно выбрать доставку на сегодня.
Код ниже для Осени не работает
// Сегдоня
var myDate = new Date();

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


#57 Сake

Сake

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

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

Отправлено 10 Декабрь 2013 - 06:14

Цитата

Нужно, чтобы предупреждение показывалось "Минимальный диапазон 4 часа!", а то может быть непонятно, почему не работают кнопки выбора времени ДО, если задают меньший диапазон. А хорошо бы и цифры бледными сделать у недоступного диапазона, но это сложно, наверное.

Данное сообщение корректно отобразить не получиться, по причине того что у вас пункты отключаются (disabled) и тем самым выбрать их повторно уже нельзя. Можно добавить событие клика по отключенному пункту, но тут есть проблема, при клике на сам выпадающий пункт (вместо клика на стрелку пункта) будет отображаться это самое окно и не давать выбрать желаемый пункт с временем. Если же нажимать на стрелку, то все будет нормально. Это может ввести в заблуждение пользователя. Возможно лучше всего будет просто изменить цвет (сделать его светлее) у неактивных пунктов. А текст о необходимости интервала написать рядом. Задать цвет неактивных пунктов не сложно, достаточно в файл стилей style.css добавить правило

option:disabled {
  color: #EDEDED;
}
  

Цитата

2) Никак не получается сделать выбор даты на следующий день или даже через день (перед Новым Годом понадобится), сейчас можно выбрать доставку на сегодня.
Код ниже для Осени не работает

Данное изменение вы делали в шаблоне "Быстрый заказ"? Данное изменение необходимо производить именно в шаблоне "Быстрый заказ" а не в файле main.js. Так же вы можете посмотреть разнообразные примеры отключения дат в календаре http://articles.tuto...pecified-dates/

#58 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 10 Декабрь 2013 - 11:26

Просмотр сообщенияСake (10 Декабрь 2013 - 06:14) писал:

Данное изменение необходимо производить именно в шаблоне "Быстрый заказ" а не в файле main.js. Так же вы можете посмотреть разнообразные примеры отключения дат в календаре http://articles.tuto...pecified-dates/
Вы мне льстите. Пока сложно.

Календарь, совсем пропадает.
Вот кусок кода в Быстром заказе:
return false;	

}).validate();

// Сегдоня
var myDate = new Date();

// Добавляем день
myDate.setDate(myDate.getDate() + 1);
$("#deliveryConvenientDate").datepicker({
	 dayNames			 : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
	 dayNamesMin	 : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
	 closeText			 : 'Готово',
	 currentText	 : 'Сегодня' ,
	 duration			 : '',
	 monthNames	 : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Окрябрь','Ноябрь','Декабрь'],
	 monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
	 yearRange			 : "-6:+6",
	 dateFormat	 : 'dd.mm.yy',
	 minDate		 : myDate,
	 firstDay			 : 1
});
// Обозначаем переменные для более удобного доступа
// Поле выбора времени "с"
var OrderDeliveryTimeFrom = $('select[name="form[delivery][convenient_time_from]"]');
// Поле выбора времени "По"
var OrderDeliveryTimeTo = $('select[name="form[delivery][convenient_time_to]"]');
// Минимальный диапазон для доставки
var OrderDeliveryTimeMinRange = 4;

А за это, спасибо. Получилось.
option:disabled {
color: #EDEDED;
}
Осталось то, всего выбор даты доделать и будет все хорошо

#59 Сake

Сake

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

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

Отправлено 11 Декабрь 2013 - 03:25

Как я понимаю вы убираете изменения? У вас на данный момент в шаблоне "Быстрый заказ" вставлен код

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

т.е без изменений, или мы с вами о разных номерах аккаунта говорим? Проверял на всех доменах аккаунта 7190.

#60 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

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

Просмотр сообщенияСake (11 Декабрь 2013 - 03:25) писал:

Как я понимаю вы убираете изменения? У вас на данный момент в шаблоне "Быстрый заказ" вставлен код

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

т.е без изменений, или мы с вами о разных номерах аккаунта говорим? Проверял на всех доменах аккаунта 7190.
Да, 7190. Убираю изменения, т. к. календарь совсем пропадает с измененным кодом.




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

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