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


Скрипт Кнопки "купить За 1 Клик"


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

#81 Сake

Сake

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

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

Отправлено 28 Март 2014 - 01:35

Цитата

После изменений из сообщения 79, письма всё также не приходят на почту. Также прибавилась другая проблема: при повторном нажатии на одну из этих форм выскакивает сообщение "The requested content cannot be loaded.
Please try again later."

Данная проблема связана с тем что при закрытии окна блок очищался. Внес вам изменение в шаблон заменив

var content = $('.iframe_block_call').children();

на

var content = $('.iframe_block_call').clone().children();

Цитата

Так вот после ваших изменений в сообщении №77 форма "Купить в 1 клик" стала выглядеть как форма "Заказать звонок", что неприемлемо. (помимо HTML, я эти изменения применял и в шаблоне "товар").

В шаблоне "Товар" вы допустили ошибку - заменив строку вы не изменили класс формы повторно указав iframe_block_call вместо iframe_block_order. В шаблон "Товар" вам было внесено соответствующее исправление. В дополнении было внесено изменение в файл main.js. Проблема была связана с тем что на странице обратной связи у вас дублировалось поле с идентификатором #feedback_еmail и в следствии чего получалось не корректное имя поля. Код был изменен с кода

$(function() {
if($('.insert-antispam').length) {
	 $.get('/feedback', function(html) {
			 $(html).find('#inject-antispam').children().appendTo($('.insert-antispam'));
			 $('#feedback_name').attr('name', $(html).find('#feedback_name').attr('name'));
			 $('#feedback_email').attr('name', $(html).find('#feedback_еmail').attr('name'));
			 $('#feedback_message').attr('name', $(html).find('#feedback_message').attr('name'));
			 var hidden = /ElementById\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
			 $('#'+hidden[1]).val(hidden[2]);
	 });
}
});

на следующий код

$(function() {
if($('.insert-antispam').length) {
	 $.get('/feedback', function(html) {
			 $(html).find('#inject-antispam').children().appendTo($('.insert-antispam'));
			 $('#feedback_name').attr('name', $(html).find('#primaryContent form #feedback_name').attr('name'));
			 $('#feedback_email').attr('name', $(html).find('#primaryContent form #feedback_еmail').attr('name'));
			 $('#feedback_message').attr('name', $(html).find('#primaryContent form #feedback_message').attr('name'));
			 var hidden = /ElementById\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
			 $('#'+hidden[1]).val(hidden[2]);
	 });
}
});

Сейчас письма на почту должны поступать, так как форма обратной связи сообщает об отправке уведомления. Перед проверкой очистите кеш в вашем браузере.

#82 AlexP_RUS

AlexP_RUS

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

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

Отправлено 28 Март 2014 - 19:11

Спасибо что заменили всё сами)) Однако, пока ещё не всё работает правильно.
Дело в том, что если отправлять сообщение с помощью формы "Заказать звонок" с главной, с обычных страниц или ещё откуда-нибудь, кроме страниц с карточкой товара, то сообщения приходят на почту. Но если перейти на любую карточку товара и попробовать отправить и с той и с другой формы, то ни с одной не придёт сообщение на почту.
Вот такая вот ситуация. Буду рад, если вылечите эту проблему до конца. :)

#83 Сake

Сake

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

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

Отправлено 29 Март 2014 - 00:35

Проблема на странице товара возникала из-за дубликата идентификаторов, в результате код антиспама не мог корректно определить значения для полей. В результате код

$(function() {
  if($('.insert-antispam').length) {
		$.get('/feedback', function(html) {
				$(html).find('#inject-antispam').children().appendTo($('.insert-antispam'));
				$('#feedback_name').attr('name', $(html).find('#primaryContent form #feedback_name').attr('name'));
				$('#feedback_email').attr('name', $(html).find('#primaryContent form #feedback_еmail').attr('name'));
				$('#feedback_message').attr('name', $(html).find('#primaryContent form #feedback_message').attr('name'));
				var hidden = /ElementById\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
				$('#'+hidden[1]).val(hidden[2]);
		});
  }
});

был заменен в вашем файле main.js на код

$(function() {
  if($('.insert-antispam').length) {
		$.get('/feedback', function(html) {
				$(html).find('#inject-antispam').children().appendTo($('.insert-antispam'));
				$('[name="form[feedback_name]"]').attr('name', $(html).find('#primaryContent form #feedback_name').attr('name'));
				$('[name="form[feedback_email]"]').attr('name', $(html).find('#primaryContent form #feedback_еmail').attr('name'));
				$('[name="form[feedback_message]"]').attr('name', $(html).find('#primaryContent form #feedback_message').attr('name'));
				var hidden = /ElementById\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
				$('[name="' + $('#'+hidden[1]).attr('name') + '"]').val(hidden[2]);
		});
  }
});


#84 AlexP_RUS

AlexP_RUS

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

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

Отправлено 29 Март 2014 - 17:10

Благодарю, всё работает.

#85 AlexP_RUS

AlexP_RUS

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

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

Отправлено 12 Июль 2014 - 17:44

Приветствую Вас Cake, проблема, которую мы обсуждали тут на последней странице возобновилась. В шаблоне ничего не менял и не правил, проблема появилась сегодня - стала выскакивать на всех страницах сайта "1 JS ошибка".
Создал тему по этой проблеме, вот: http://forum.storela...всех-страницах/
Там мне сказали, что ошибка происходит из-за как раз вашего кода, который вы тут в последнем своём сообщении изменяли. Сказали удалить его. Я код удалил, ошибка исчезла, но теперь перестали работать: в шапке "Заказать звонок" и в карточке товара "Купить в 1 клик".
Попробовал поставить код назад, ошибка появилась снова, а обратные звонки всё также не работают, хотя буквально вчера всё это работало и всё было нормально.

Почему это произошло? Помогите пож-та исправить.
Сейчас пока этот код удалён из шаблона.
$('[name="' + $('#'+hidden[1]).attr('name') + '"]').val(hidden[2]);


#86 Сake

Сake

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

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

Отправлено 15 Июль 2014 - 04:00

В указанной вами теме я уже ответил http://forum.storela...ах/#entry147820
Проблема возникла из-за изменения разработчиками кода антиспама, в связи с этим регулярное выражение перестало работать, так как код уже изменился. Выполните описанную там инструкцию и работа обратного звонка должна возобновится. Не забудьте только очистить кэш в вашем браузере.

#87 AlexP_RUS

AlexP_RUS

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

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

Отправлено 15 Июль 2014 - 14:45

Изменил на предложенный Вами код из темы http://forum.storela...ах/#entry147820, но формы обратного звонка всё также не работают, а именно не приходит письмо на емэйл. Кэш очистил.

#88 Castiel

Castiel

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

  • Модераторы
  • 3 519 сообщений
  • ГородНижний Новгород

Отправлено 15 Июль 2014 - 15:42

Просмотр сообщенияAlexP_RUS (15 Июль 2014 - 14:45) писал:

Изменил на предложенный Вами код из темы http://forum.storela...ах/#entry147820, но формы обратного звонка всё также не работают, а именно не приходит письмо на емэйл. Кэш очистил.
В шаблоне "HTML"
Находим:
  <!-- Скрипт кнопки обратный звонок -->
  <div class="iframe_block_call" style="display:none;"><center>
		<form method="post" action="http://autovostorg.ru/feedback" class="feedbackForm" enctype="multipart/form-data">
				<div class="section-caption c-orange"><h3>Заказать обратный звонок!</h3></div>
						<div class="iframe_click">
								<input type="hidden" name="hash" value="{HASH}" />
								<span class="insert-antispam"></span>
						<table class="prd-block">
				 <tr>
								 <td>Ваше имя*:</td>
				  <td><input id="feedback_name" style="width: 200px; margin: 10px;" name="form[feedback_name]" placeholder="Ваше имя" maxlength="50" required="required" minlength="3" class="input required" /></td>
				 </tr>
				 <tr>
								 <td>Ваш телефон*:</td>
				  <td><input id="feedback_message" style="width: 200px; margin: 10px;" name="form[feedback_message]" class="required" required="required" placeholder="Номер телефона" minlength="5" /></td>
				 </tr>
				 <tr>
								 <tr style="display: none;">
																 <td>Ваш email*:</td>
								  <td><input id="feedback_email" name="form[feedback_email]" type="hidden" value="test@test.com" /></td>
								 </tr>
				</table>
								<input type="button" class="button_med" value="Заказать" onclick="$('#nyroModalContent .feedbackForm').validate();if(!$('#nyroModalContent .feedbackForm').valid())return(false);$(this).closest('form').find('#feedback_name').val($(this).closest('form').find('#feedback_name').val() + ' ' + $(this).closest('form').find('.form_product_name').text());$(this).closest('form').hide();$(this).closest('form').before('<center class=sends>Подождите, идет отправка формы...</center>');$.post($(this).closest('form').attr('action'), $(this).closest('form').serializeArray(), $.proxy(function() {$('.sends').remove();$(this).closest('form').before('<center class=sends>Спасибо за заявку, мы перезвоним Вам в самое ближайшее время.</center>');setTimeout(function() {$('.nyroModalClose').trigger('click');}, 3000)}, this));"/>
<p>Оставьте Ваши контактные данные, и в течение 30 минут наш менеджер свяжется с Вами.</p>
																																																																								 </div>
																																  </form>
																																</center></div>

Заменяем на:
<!-- Скрипт кнопки обратный звонок -->
  <div class="iframe_block_call" style="display:none;"><center>
		<form method="post" action="{CALLBACK_URL}" class="callbackForm" enctype="multipart/form-data">
				<div class="section-caption c-orange"><h3>Заказать обратный звонок!</h3></div>
						<div class="iframe_click">
								<input type="hidden" name="hash" value="{HASH}" />
								<input type="hidden" name="return_to" value="/" />
								<span class="insert-antispam"></span>
				<table class="prd-block">
				 <tr>
								 <td>Ваше имя*:</td>
				  <td><input id="feedback_name" style="width: 200px; margin: 10px;" name="form[{ANTISPAM_FORM_FIELD_NAME_CALLBACK_PERSON}]" value="{FORM_CALLBACK_PERSON}" placeholder="Ваше имя" maxlength="50" required="required" minlength="3" class="input required" /></td>
				 </tr>
				 <tr>
								 <td>Ваш телефон*:</td>
				  <td><input id="feedback_message" style="width: 200px; margin: 10px;" name="form[{ANTISPAM_FORM_FIELD_NAME_CALLBACK_PHONE}]" value="{FORM_CALLBACK_PHONE}" class="required" required="required" placeholder="Номер телефона" minlength="5" /></td>
				 </tr>

				</table>
								{% IFNOT FORM_SEND_OK %}<button style="background: #FFDB00;height: 30px;width: 300px;margin-top:10px;" type="submit" title="Отправить" class="button">Отправить</button>{% ENDIF %}

<p>Оставьте Ваши контактные данные, и в течение 30 минут наш менеджер свяжется с Вами.</p>
																																																																								 </div>
																																  </form>
																																</center></div>

Далее в main.js удаляем
$(function() {
  if($('.insert-antispam').length) {
		$.get('/feedback', function(html) {
				$(html).find('#inject-antispam').children().appendTo($('.insert-antispam'));
				$('[name="form[feedback_name]"]').attr('name', $(html).find('#primaryContent form #feedback_name').attr('name'));
				$('[name="form[feedback_email]"]').attr('name', $(html).find('#primaryContent form #feedback_еmail').attr('name'));
				$('[name="form[feedback_message]"]').attr('name', $(html).find('#primaryContent form #feedback_message').attr('name'));
				var hidden = /getElementsByClassName\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
				$('[name="' + $('#'+hidden[1]).attr('name') + '"]').val(hidden[2]);
		});
  }
});


#89 AlexP_RUS

AlexP_RUS

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

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

Отправлено 15 Июль 2014 - 19:01

Castiel, я так понял что это форма нового обратного звонка, но я пока ничего не буду удалять и менять, т.к. у меня кроме обратного звонка по той же схеме работает и купить в 1 клик в самой карточке товара, а Вы про это ничего не написали. Поэтому, подожду ответа Cake.

#90 Сake

Сake

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

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

Отправлено 16 Июль 2014 - 00:08

Проблема по всей видимости из-за символа "#" который необходимо было с учетом новых изменений заменить на "."
Найдите в файле main.js строку

$('[name="' + $('#'+hidden[1]).attr('name') + '"]').val(hidden[2]);

и замените её на

$('[name="' + $('.'+hidden[1]).attr('name') + '"]').val(hidden[2]);


#91 Serg83

Serg83

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

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

Отправлено 28 Август 2014 - 20:48

по форме "Заказ в 1 клик" пара вопросов появилась:

1) не работает кнопка "Пересчитать" при изменении кол-во товаров для заказа. подскажите как исправить?

2) как вывести выбор способов доставки в эту форму?

3) как увеличить растояние между нижней границей формы и кнопкой "оформить заказ". сейчас они вплотную друг к другу

#92 Сake

Сake

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

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

Отправлено 29 Август 2014 - 00:47

Используйте шаблон быстрого заказа из темы форума http://forum.storela...я-всех-шаблонов
В шаблоне быстрого заказа не используется корзина, поэтому вам необходимо будет перенести код корзины в шаблон быстрого заказа. Только после этого можно будет скорректировать кнопку перерасчета.

#93 Serg83

Serg83

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

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

Отправлено 02 Сентябрь 2014 - 13:37

Просмотр сообщенияСake (29 Август 2014 - 00:47) писал:

Используйте шаблон быстрого заказа из темы форума http://forum.storela...я-всех-шаблонов
В шаблоне быстрого заказа не используется корзина, поэтому вам необходимо будет перенести код корзины в шаблон быстрого заказа. Только после этого можно будет скорректировать кнопку перерасчета.

это общий ответ или вы все же смотрели мой код "быстрого заказа"?

1) что-то от корзины там есть, но вероятно не работает или делает это некорректно.

2) если я все верно понимаю, то зоны доставки там тоже есть, но не выводятся

#94 Vaccina

Vaccina

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

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

Отправлено 03 Сентябрь 2014 - 02:09

В шаблоне быстрый заказ найдите:
<div class="fieldset" style="display:none;">
		 <h2 class="legend" title="Выберите удобный для вас способ доставки">Cпособ доставки</h2>
замените на:
<div class="fieldset">
		 <h2 class="legend" title="Выберите удобный для вас способ доставки">Cпособ доставки</h2>


#95 Serg83

Serg83

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

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

Отправлено 03 Сентябрь 2014 - 18:53

Просмотр сообщенияVaccina (03 Сентябрь 2014 - 02:09) писал:

В шаблоне быстрый заказ найдите:
<div class="fieldset" style="display:none;">
		 <h2 class="legend" title="Выберите удобный для вас способ доставки">Cпособ доставки</h2>
замените на:
<div class="fieldset">
		 <h2 class="legend" title="Выберите удобный для вас способ доставки">Cпособ доставки</h2>

Vaccina, спасибо.
наконец-то четкие ответы по делу :)

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

#96 Vaccina

Vaccina

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

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

Отправлено 04 Сентябрь 2014 - 03:35

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

В быстром заказе найдите:
<label for="quickDeliveryIdMain{order_delivery.ID}" class="zones-header">Зоны доставки</label>
замените на:
<label for="quickDeliveryIdMain{order_delivery.ID}" class="zones-header">Зоны доставки</label><br/>

В main.css добавьте:
#quickform .orderStageDeliveryListTable tbody {
	background: #ddd;
	border-radius: 5px;
	display: block;
	margin: 7px 0;
	color: #000;
	font-size: 14px;
	padding: 10px;
}


#97 Serg83

Serg83

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

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

Отправлено 05 Сентябрь 2014 - 15:04

Просмотр сообщенияVaccina (04 Сентябрь 2014 - 03:35) писал:

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

В быстром заказе найдите:
<label for="quickDeliveryIdMain{order_delivery.ID}" class="zones-header">Зоны доставки</label>
замените на:
<label for="quickDeliveryIdMain{order_delivery.ID}" class="zones-header">Зоны доставки</label><br/>

В main.css добавьте:
#quickform .orderStageDeliveryListTable tbody {
background: #ddd;
border-radius: 5px;
display: block;
margin: 7px 0;
color: #000;
font-size: 14px;
padding: 10px;
}
сделал как вы написали, но изменений не заметно.

1) прилипшая к нижней границе кнопка заказа
Прикрепленный файл  прилипшая кнопка.bmp   460,98К   428 Количество загрузок:

2) вот так выглядят скрытые описания доставок в корзине
скрыты.jpg

вот так - с открытым описанием (если пункты выбран)
открыты.jpg

вот такое полотно открывается в Быстром заказе
полотно в быстром заказе.jpg

хотелось бы, чтобы в Быстром заказе все было коротко и сжато, в идеале - как в Корзине

#98 Serg83

Serg83

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

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

Отправлено 05 Сентябрь 2014 - 15:11

кстати, стоимость доставки в Быстром заказе не выводится... все по нулям
как исправить?

#99 batta

batta

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

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

Отправлено 08 Сентябрь 2014 - 08:03

Просмотр сообщенияSerg83 (05 Сентябрь 2014 - 15:11) писал:

кстати, стоимость доставки в Быстром заказе не выводится... все по нулям
как исправить?
Здравствуйте.
У вас стоит 0 только в пункте "Транспортными компаниями"

#100 Serg83

Serg83

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

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

Отправлено 08 Сентябрь 2014 - 09:04

Просмотр сообщенияbatta (08 Сентябрь 2014 - 08:03) писал:

Здравствуйте.
У вас стоит 0 только в пункте "Транспортными компаниями"

да, видимо глюк браузера был.
спс.

а подскажите как поднастроить отображение способов доставки?
- изменить цвет стоимости
- сделать поля зон доставки уже
- и отодвинуть стоимость максимально вправо




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

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