Jump to content

Купить в 1 клик


Recommended Posts

Пробуйте после

if($('.variants').find('input[name=variant]:checked').size()>0)
variant = $('.variants input[name=variant]:checked').val();

добавить

if($('.variants').find('select[name=variant]').size()>0)
variant = $('.variants').find('select').val();

Если шаблон не стандартный, то, возможно, придется что-то еще делать...

Link to post
Share on other sites

такая должна быть структура:

 

<div style="display: none;">      
                      
<div id="oneclick" class="window">
        <div class="title">Купить {$product->name|escape|rtrim}</div>
        <ul>
                <li><span>Ваше имя:</span><input class="onename" value="" type="text"></li>
                <li><span>Телефон:</span><input class="onephone" value="" type="text"></li>
        </ul>
        <button type="submit" name="enter" value="1" class="oneclickbuy button">Купить!</button>

</div>
</div>
Link to post
Share on other sites

 

такая должна быть структура:

 

<div style="display: none;">      
                      
<div id="oneclick" class="window">
        <div class="title">Купить {$product->name|escape|rtrim}</div>
        <ul>
                <li><span>Ваше имя:</span><input class="onename" value="" type="text"></li>
                <li><span>Телефон:</span><input class="onephone" value="" type="text"></li>
        </ul>
        <button type="submit" name="enter" value="1" class="oneclickbuy button">Купить!</button>

</div>
</div>

Спасибо, теперь форма работает, он не реагирует на нажатие кнопки купить.

Link to post
Share on other sites

Код выглядит так:

a href="#oneclick" class="button various oneclick">купить в 1 клик</a>
                        
<div style="display: none;">      
                      
<div id="oneclick" class="window">
        <div class="title">Купить {$product->name|escape|rtrim}</div>
        <ul>
                <li><span>Ваше имя:</span><input class="onename" value="" type="text"></li>
                <li><span>Телефон:</span><input class="onephone" value="" type="text"></li>
        </ul>
        <button type="submit" name="enter" value="1" class="oneclickbuy button">Купить!</button>

</div>
</div>

{literal}
        <style>
                .button.various         { display: block; float: left; margin: 8px 0 0 2px; padding: 3px 10px; font-size: 13px; }
                #oneclick                       { width: 350px; font-size: 14px; }
                #oneclick .title        { font: 18px Arial; color: #000; margin-bottom: 7px; border-bottom: 1px solid #ccc; padding-bottom: 12px; }
                #oneclick p,
                #oneclick li            { display: block; padding: 6px 0; }
                #oneclick li span       { display: inline-block; width: 80px;  }
                #oneclick input         { width: 264px; }
                #oneclick button        { float: right; margin-top: 8px; }
        </style>
        <script>
        $(function() {

                $(".various").fancybox({
                        helpers : {
                                overlay : {
                                        locked : false
                                }
                        },
                        closeBtn: false,
                        fitToView: false,
                        autoSize: true,
                        minHeight: "0",
                        minWidth: "350",
                        scrolling: false,
                        closeClick      : false,
                        openEffect      : 'fade',
                        closeEffect     : 'none'
                });

                $('.oneclickbuy').click( function() {

                        if($('.variants').find('input[name=variant]:checked').size()>0) variant = $('.variants input[name=variant]:checked').val();
                        
                        if( !$('.onename').val() || !$('.onephone').val() ) { 
                                alert("Заполните все поля!");
                                return false;
                        }

                        $.ajax({
                                type: "post",
                                url: "/ajax/oneclick.php",
                                data: {amount: 1, variant: variant, name: $('.onename').val() , phone: $('.onephone').val() },
                                dataType: 'json'
                        });
                        
                        $('.oneclick').hide(200);
                        $("#oneclick").html("<div class='title'>Спасибо за заказ!</div><p>В ближайшее время с вами свяжется наш менеджер!</p><button type='submit' class='button' onclick='$.fancybox.close();$(\".oneclick\").hide();return false;'>Закрыть!</button>");
                        
                        return false;
                        
                });

        });
        </script>
{/literal}
Link to post
Share on other sites

НЕ соответствуют:

1.   a href="#oneclick" class="button various oneclick">купить в 1 клик</a>
2.   $('.oneclickbuy').click( function() {

 

Пробуйте изменить

2.   $('.oneclick').click( function() {

Link to post
Share on other sites

НЕ соответствуют:

1.   a href="#oneclick" class="button various oneclick">купить в 1 клик</a>

2.   $('.oneclickbuy').click( function() {

 

Пробуйте изменить

2.   $('.oneclick').click( function() {

Без изменений...

Link to post
Share on other sites

В файле oneclick.php изменить смену директории

	session_start();
	chdir('..');
	require_once('api/Simpla.php');
	$simpla = new Simpla();

Далее:

a href="#oneclick" class="button various oneclick">купить в 1 клик</a>
                        
<div style="display: none;">      
                      
<div id="oneclick" class="window">
        <div class="title">Купить {$product->name|escape|rtrim}</div>
        <ul>
                <li><span>Ваше имя:</span><input class="onename" value="" type="text"></li>
                <li><span>Телефон:</span><input class="onephone" value="" type="text"></li>
        </ul>
        <button type="submit" name="enter" value="1" class="oneclickbuy button">Купить!</button>

</div>
</div>

{literal}
        <style>
                .button.various         { display: block; float: left; margin: 8px 0 0 2px; padding: 3px 10px; font-size: 13px; }
                #oneclick                       { width: 350px; font-size: 14px; }
                #oneclick .title        { font: 18px Arial; color: #000; margin-bottom: 7px; border-bottom: 1px solid #ccc; padding-bottom: 12px; }
                #oneclick p,
                #oneclick li            { display: block; padding: 6px 0; }
                #oneclick li span       { display: inline-block; width: 80px;  }
                #oneclick input         { width: 264px; }
                #oneclick button        { float: right; margin-top: 8px; }
        </style>
        <script>
        $(function() {

                $(".various").fancybox({
                        helpers : {
                                overlay : {
                                        locked : false
                                }
                        },
                        closeBtn: false,
                        fitToView: false,
                        autoSize: true,
                        minHeight: "0",
                        minWidth: "350",
                        scrolling: false,
                        closeClick      : false,
                        openEffect      : 'fade',
                        closeEffect     : 'none'
                });

                $('.oneclick').click( function() {

                        if($('.variants').find('input[name=variant]:checked').size()>0) variant = $('.variants input[name=variant]:checked').val();
                        
                        if( !$('.onename').val() || !$('.onephone').val() ) { 
                                alert("Заполните все поля!");
                                return false;
                        }

                        $.ajax({
                                type: "post",
                                url: "/ajax/oneclick.php",
                                data: {amount: 1, variant: variant, name: $('.onename').val() , phone: $('.onephone').val() },
                                dataType: 'json'
                        });
                        
                        $('.oneclick').hide(200);
                        $("#oneclick").html("<div class='title'>Спасибо за заказ!</div><p>В ближайшее время с вами свяжется наш менеджер!</p><button type='submit' class='button' onclick='$.fancybox.close();$(\".oneclick\").hide();return false;'>Закрыть!</button>");
                        
                        return false;
                        
                });

        });
        </script>
{/literal}

 

 

И все работает!
 
НО, товары добавляются не те, что надо. Т.е. нажимаешт на купить в 1клик один товар, а в заказ попадает другой это в 2.1.5. В 2.3.6 норм
Link to post
Share on other sites
  • 3 weeks later...

 

В файле oneclick.php изменить смену директории

	session_start();
	chdir('..');
	require_once('api/Simpla.php');
	$simpla = new Simpla();

Далее:

a href="#oneclick" class="button various oneclick">купить в 1 клик</a>
                        
<div style="display: none;">      
                      
<div id="oneclick" class="window">
        <div class="title">Купить {$product->name|escape|rtrim}</div>
        <ul>
                <li><span>Ваше имя:</span><input class="onename" value="" type="text"></li>
                <li><span>Телефон:</span><input class="onephone" value="" type="text"></li>
        </ul>
        <button type="submit" name="enter" value="1" class="oneclickbuy button">Купить!</button>

</div>
</div>

{literal}
        <style>
                .button.various         { display: block; float: left; margin: 8px 0 0 2px; padding: 3px 10px; font-size: 13px; }
                #oneclick                       { width: 350px; font-size: 14px; }
                #oneclick .title        { font: 18px Arial; color: #000; margin-bottom: 7px; border-bottom: 1px solid #ccc; padding-bottom: 12px; }
                #oneclick p,
                #oneclick li            { display: block; padding: 6px 0; }
                #oneclick li span       { display: inline-block; width: 80px;  }
                #oneclick input         { width: 264px; }
                #oneclick button        { float: right; margin-top: 8px; }
        </style>
        <script>
        $(function() {

                $(".various").fancybox({
                        helpers : {
                                overlay : {
                                        locked : false
                                }
                        },
                        closeBtn: false,
                        fitToView: false,
                        autoSize: true,
                        minHeight: "0",
                        minWidth: "350",
                        scrolling: false,
                        closeClick      : false,
                        openEffect      : 'fade',
                        closeEffect     : 'none'
                });

                $('.oneclick').click( function() {

                        if($('.variants').find('input[name=variant]:checked').size()>0) variant = $('.variants input[name=variant]:checked').val();
                        
                        if( !$('.onename').val() || !$('.onephone').val() ) { 
                                alert("Заполните все поля!");
                                return false;
                        }

                        $.ajax({
                                type: "post",
                                url: "/ajax/oneclick.php",
                                data: {amount: 1, variant: variant, name: $('.onename').val() , phone: $('.onephone').val() },
                                dataType: 'json'
                        });
                        
                        $('.oneclick').hide(200);
                        $("#oneclick").html("<div class='title'>Спасибо за заказ!</div><p>В ближайшее время с вами свяжется наш менеджер!</p><button type='submit' class='button' onclick='$.fancybox.close();$(\".oneclick\").hide();return false;'>Закрыть!</button>");
                        
                        return false;
                        
                });

        });
        </script>
{/literal}

 

 

И все работает!
 
НО, товары добавляются не те, что надо. Т.е. нажимаешт на купить в 1клик один товар, а в заказ попадает другой это в 2.1.5. В 2.3.6 норм

при заполнение полей ничего не происходит после нажатия на кнопку купить. Simpla 2.3.6

Link to post
Share on other sites

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

Link to post
Share on other sites
  • 4 weeks later...
  • 4 weeks later...

Подскажите. При нажатии на кнопку "купить в 1 клик" сначала появляется алерт "Заполните все поля", после закрытия алерта уже сама форма. Я так понимаю алерт должен появляться если не заполнено одно из полей. Как это исправить?

Link to post
Share on other sites
  • 1 month later...
  • 1 year later...

У меня тоже такая версия, но не работает, вот что установил:

 

в вариантах используется выпадающий список

 

в шаблоне

                  <a href="#oneclick" class="button various oneclick">купить в 1 клик</a>
                  <div style="display: none;">
                  <div id="oneclick" class="window">
                  
	          <div class="title">Купить {$product->name|escape}</div>
	          <ul>
		      <li><span>Ваше имя:</span><input class="onename" value="" type="text"></li>
		      <li><span>Телефон:</span><input class="onephone" value="" type="text"></li>
	          </ul>
	          <button type="submit" name="enter" value="1" class="oneclickbuy button">Купить!</button>
                  
                  </div>
                  </div>
              
        {literal}
	<style>
		.button.various 	{ display: block; float: left; margin: 8px 0 0 2px; padding: 3px 10px; font-size: 13px; }
		#oneclick			{ width: 350px; font-size: 14px; }
		#oneclick .title	{ font: 18px Arial; color: #000; margin-bottom: 7px; border-bottom: 1px solid #ccc; padding-bottom: 12px; }
		#oneclick p,
		#oneclick li 		{ display: block; padding: 6px 0; }
		#oneclick li span 	{ display: inline-block; width: 80px;  }
		#oneclick input		{ width: 264px; }
		#oneclick button	{ float: right; margin-top: 8px; }
	</style>
	<script>
	$(function() {

		$(".various").fancybox({
			helpers : {
				overlay : {
					locked : false
				}
			},
			closeBtn: false,
			fitToView: false,
			autoSize: true,
			minHeight: "0",
			minWidth: "350",
			scrolling: false,
			closeClick: false,
			openEffect: 'fade',
			closeEffect: 'none'
		});

		$('.oneclickbuy').click( function() {

			if($('.variants').find('select[name=variant]').size()>0) variant = $('.variants').find('select').val();
			
                        if( !$('.onename').val() || !$('.onephone').val() ) { 
				alert("Заполните все поля!");
				return false;
			}

			$.ajax({
				type: "post",
                                url: "ajax/oneclick.php",
				data: {amount: 1, variant: variant, name: $('.onename').val() , phone: $('.onephone').val() },
				dataType: 'json'
			});
			
			$('.oneclick').hide(200);
			$("#oneclick").html("<div class='title'>Спасибо за заказ!</div><p>В ближайшее время с вами свяжется наш менеджер!</p><button type='submit' class='button' onclick='$.fancybox.close();$(\".oneclick\").hide();return false;'>Закрыть!</button>");
			
			return false;
			
		});

	});
	</script>
        {/literal}

 

файл oneclick.php

 

<?php
	session_start();
	require_once('../api/Simpla.php');
	$simpla = new Simpla();
	
	$variant_id = $simpla->request->post('variant', 'integer');
	$amount = $simpla->request->post('amount', 'integer');

	$order = new StdClass;
	$order->name = $simpla->request->post('name', 'string');
	$order->phone = $simpla->request->post('phone', 'string');
	
	
	// добавляем заказ
	$order_id = $simpla->orders->add_order($order);
	
	// добавляем товар в заказ
	$simpla->orders->add_purchase(array('order_id'=>$order_id, 'variant_id'=>intval($variant_id), 'amount'=>intval($amount)));

	// отправляем письмо администратору
	$simpla->notify->email_order_admin($order_id);

 

Установленная версия fancybox - fancybox-1.3.4, прикрепил во вложении.

 


Модальное окно открывается, но после ввода данных и нажатии кнопки Купить, ничего не происходит.

Подскажите пожалуйста, как можно адаптировать под старую вервию 2.0 ?

fancybox-1.3.4.rar

Edited by Skynet
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...