Перейти к содержанию
Форум поддержки пользователей VamShop

После последнего обновления перестало работать оформление заказа


Рекомендуемые сообщения

После добавления капчи в последнем обновлении невозможно оформить заказ, пишу данные нажимаю продолжить, оно сбрасывает все данне и опять форма заказа. Так же не работает заказ за один клик, пишу телефон нажимаю и ничего не происходит ни пишет что заказ оформлен и не приходит e-mail. Как это исправить? Что то с это капчей проблемка у меня и капча не работает и при обновлении в этой области все валится (

 

 

Снимок.JPG

Ссылка на сообщение
Поделиться на другие сайты

Была каптча невидимая добавлена.

Видимо, у Вас используется свой шаблон для страницы оформения.

Скопируйте код текущего шаблона тэга checkout из Админки - Расширения - Тэги - checkout в свой шаблон, тогда каптча заработает.

Ссылка на сообщение
Поделиться на другие сайты

Да, но мне нужен мой шаблон, как удалить вообще эту капчу? И с заказом в один клик (шаблон не менял), раньше тоже была капча, я с вашей помошью удалил ее, но теперь капча не появилась, но всеравно не работает данный модуль... Мне нужно что бы было и работало как раньше, пусть даже без капчи.

 

Нашел прошлую тему по модулю за один клик, закоментировал здесь /app/Plugin/ModuleOneClickBuy/View/Buy/buy_form.ctp проверку капчи, модуль заработал. Теперь мне так же найти где закоментрровать проверку и вывод капчи в оформлении заказа?

Изменено пользователем xside
Ссылка на сообщение
Поделиться на другие сайты

Так кто ж против, оставляйте свой шаблон, просто добавьте сверху и снизу код для невидимой каптчи из шаблона по умолчанию.

Вот /app/Controller/OrdersController.php без каптчи.

OrdersController.php

Ссылка на сообщение
Поделиться на другие сайты

Файл заменил, проверка не работает, а как убрать теперь капчу из шаблона, можно подробней? Например в случае с модулем за один клик я убирал здесь:  /app/Plugin/ModuleOneClickBuy/View/Buy/buy_form.ctp. А в этом случае с оформлением убрать в микрошаблоне chekout или где то в другом месте, что то я непойму. 

Ссылка на сообщение
Поделиться на другие сайты

Да, в микро-шаблоне checkout (если у Вас свой шаблон используется, либо в /app/Vendor/smarty/vam_plugins/function.checkout.php, если используется шаблон по умолчанию) удаляете сверху:

  $(\'.form-anti-bot, .form-anti-bot-2\').hide(); // hide inputs from users
  var answer = $(\'.form-anti-bot input#anti-bot-a\').val(); // get answer
  $(\'.form-anti-bot input#anti-bot-q\').val( answer ); // set answer into other input
	
  if ( $(\'form#contentform input#anti-bot-q\').length == 0 ) {
	  var current_date = new Date();
	  var current_year = current_date.getFullYear();
	  $(\'form#contentform\').append(\'<input type="hidden" name="anti-bot-q" id="anti-bot-q" value="\'+current_year+\'" />\'); // add whole input with answer via javascript to form
  }

и снизу:

  <div class="form-anti-bot" style="clear:both;">
    <strong>Current <span style="display:none;">month</span> <span style="display:inline;">ye@r</span> <span style="display:none;">day</span></strong> <span class="required">*</span>
    <input type="hidden" name="anti-bot-a" id="anti-bot-a" value="{$smarty.now|date_format:"%Y"}" />
    <input type="text" name="anti-bot-q" id="anti-bot-q" size="30" value="19" />
  </div>
  <div class="form-anti-bot-2" style="display:none;">
    <strong>Leave this field empty</strong> <span class="required">*</span>
    <input type="text" name="anti-bot-e-email-url" id="anti-bot-e-email-url" size="30" value=""/>
  </div>

 

Ссылка на сообщение
Поделиться на другие сайты

Вроде все сделал, спасибо, но у меня появился один баг, непойму как исправить. Когда я заполняю данные от руки, все нормально, как только я выбираю данные из списка ранее вводимых у меня отражается стандартный шаблон (вамовский) и притом в мобильной версии. Мой шаблон под другим именем нежели chekout, может это имеет значение?

Ссылка на сообщение
Поделиться на другие сайты

Не совсем понял вопрос.

Шаблон единый для всех устройств, код везде одинаковый.

Запоминиание данных, это если речь про заполнение формы в браузере, то это браузер запоинмает.

В общем, покажите пример, а то не совсем понятно, о чём речь.

Ссылка на сообщение
Поделиться на другие сайты

Попробуйте свой импользуемый микро-шаблон скопировать в админке и вставить /app/Vendor/smarty/vam_plugins/function.checkout.php

т.е. поменять стандартный шаблон на свой.

Ссылка на сообщение
Поделиться на другие сайты

Скопировал свой шаблон в этот оператор (ниже). Пустая страница, не хочет вообще видеть. Может я что то не так сделал?

function default_template_checkout ()
{
$template = '

<script type="text/javascript" src="{base_path}/js/modified.js"></script>
<script type="text/javascript" src="{base_path}/js/focus-first-input.js"></script>
<script type="text/javascript" src="{base_path}/js/jquery/plugins/validate/jquery.validate.pack.js"></script>
<script type="text/javascript" src="{base_path}/js/jquery/plugins/maskedinput/jquery.maskedinput.min.js"></script>

<script type="text/javascript">
$(function () {

  $("#contentform :input:text:visible:enabled:first").focus();

  $("form#contentform :input").change(function() {
    $("input[id='" + this.id + "']").addClass("modified");
    $("radio[id='" + this.id + "']").addClass("modified");
    $("select[id='" + this.id + "']").addClass("modified");
    $("checkbox[id='" + this.id + "']").addClass("modified");
    $("textarea[id='" + this.id + "']").addClass("modified");
  });
          
$("div.radio").click(function(){
$("div.radio").parent().removeClass("sselected");
$(this).parent().addClass("sselected");
});

$("div.radio").click(function(){
$("div.radio").parent().removeClass("sselected");
$(this).parent().addClass("sselected");
});
    
  // validate form
  $("#contentform").validate({
    rules: {
      bill_name: {
        required: true,
        minlength: 2      
     },
    
      phone: {
        required: true,
        minlength: 10,
     },
    },
    messages: {
      bill_name: {
        required: " *Обязательно",
        minlength: " *Мин. 2 символ"
      },
   
      phone: {
        required: " *Обязательно",
        minlength: " *Мин. 10 символ"
      }
    }
  });

    $(hidePay);        
        function hidePay()    {
        if ($("#diff_shipping").is(":checked") == "1")
            {
        $("#diff_shipping").attr("checked", true);
        }
        else
        {
        $("#diff_shipping").attr("checked", false);
        $("#ship_information").css("display","none");
        }
        
    
        $("#diff_shipping").click(function(){
    // If checked
            if ($("#diff_shipping").is(":checked"))
            {
                //show the hidden div
                $("#ship_information").show("fast");
            }
            else
            {
            $("#ship_information").hide("fast");
            }
        });
        ;}

    $("#bill_country").change(function () {
      $("#bill_state_div").load("{base_path}/countries/billing_regions/" + $(this).val());
    });
    $("#ship_country").change(function () {
      $("#ship_state_div").load("{base_path}/countries/shipping_regions/" + $(this).val());
    });
    $("#bill_state").change(function(){            
        var http_send = "{base_path}/orders/save_data/";
        var form_data = $("#contentform").serialize();
        $.ajax({
                type: "POST",
                url: http_send,
                data: form_data,
                async: true,
                success: function (data, textStatus) {
                    $("#checkout").html(data);},
                beforeSend: function () {
                    },
                complete: function () {
                    $("#bill_state").focus();
                    }                                                    
            });                            
        return false;
    });

  });
</script>
<div id="checkout">
    <form action="{$checkout_form_action}" method="post" id="contentform" class="form-horizontal">
        <div class="information-left">
            <h3>{lang}Billing Information{/lang}</h3> Вы можете указать только ваш номер телефона и имя. Остальную информацию мы уточним связавшись с вами.
            <div class="form-group">
                <label class="control-label" for="bill_name">{lang}Name{/lang}:</label>
                <div class="col">
                    <input type="text" class="form-control" name="bill_name" id="bill_name" value="{if $customer.AddressBook.ship_name}{$customer.AddressBook.ship_name}{else}{$order.bill_name}{/if}"/>
                </div>
            </div>
            <div class="form-group">
                <label class="control-label" for="bill_line_1">{lang}Address Line 1{/lang}:</label>
                <div class="col">
                    <input type="text" class="form-control" name="bill_line_1" id="bill_line_1" value="{if $customer.AddressBook.ship_line_1}{$customer.AddressBook.ship_line_1}{else}{$order.bill_line_1}{/if}" />
                </div>
            </div>
            <div class="form-group">
                <label class="control-label" for="bill_line_2">{lang}Address Line 2{/lang}:</label>
                <div class="col">
                    <input type="text" class="form-control" name="bill_line_2" id="bill_line_2" value="{if $customer.AddressBook.ship_line_2}{$customer.AddressBook.ship_line_2}{else}{$order.bill_line_2}{/if}" />
                </div>
            </div>
            <div class="form-group">
                <label class="control-label" for="bill_city">{lang}City{/lang}:</label>
                <div class="col">
                    <input type="text" class="form-control" name="bill_city" id="bill_city" value="{if $customer.AddressBook.ship_city}{$customer.AddressBook.ship_city}{else}{$order.bill_city}{/if}" />
                </div>
            </div>    
            <div class="form-group">
                <label class="control-label" for="bill_zip">{lang}Zipcode{/lang}:</label>
                <div class="col">
                    <input type="text" class="form-control" name="bill_zip" id="bill_zip" value="{if $customer.AddressBook.ship_zip}{$customer.AddressBook.ship_zip}{else}{$order.bill_zip}{/if}" />
                </div>
            </div>    
            <div class="form-group">
                <label class="control-label" for="bill_country">{lang}Country{/lang}:</label>
                <div class="col">
                    <select name="bill_country" class="form-control" id="bill_country">{if $customer.AddressBook.ship_country}{country_list selected={$customer.AddressBook.ship_country}}{else}{country_list}{/if}</select>
                </div>
            </div>
            <div class="form-group">
                <div id="bill_state_div">
                    <label class="control-label" for="bill_state">{lang}State{/lang}:</label>
                    <div class="col">
                        <select name="bill_state" class="form-control" id="bill_state">{if $customer.AddressBook.ship_state}{state_list country={$customer.AddressBook.ship_country} selected={$customer.AddressBook.ship_state}}{else}{state_list selected={$smarty.post.bill_state}}{/if}</select>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <div class="col">
                    <div class="checkbox">
                        <!--<label><input type="checkbox" name="diff_shipping" id="diff_shipping" /> {lang}My delivery and billing addresses are not the same.{/lang}</label>-->
                    </div>
                </div>
            </div>
            <div id="ship_information">
                <h3>{lang}Shipping Information{/lang}</h3>
                <div class="form-group">
                    <label class="control-label" for="ship_name">{lang}Name{/lang}:</label>
                    <div class="col">
                        <input type="text" class="form-control" name="ship_name" id="ship_name" value="{$order.ship_name}" />
                    </div>
                </div>
                <div class="form-group">
                    <label class="control-label" for="ship_line_1">{lang}Address Line 1{/lang}:</label>
                    <div class="col">
                        <input type="text" class="form-control" name="ship_line_1" id="ship_line_1" value="{$order.ship_line_1}" />
                    </div>
                </div>
                <div class="form-group">
                    <label class="control-label" for="ship_line_2">{lang}Address Line 2{/lang}:</label>
                    <div class="col">
                        <input type="text" class="form-control" name="ship_line_2" id="ship_line_2" value="{$order.ship_line_2}" />
                    </div>
                </div>
                <div class="form-group">
                    <label class="control-label" for="ship_city">{lang}City{/lang}:</label>
                    <div class="col">
                        <input type="text" class="form-control" name="ship_city" id="ship_city" value="{$order.ship_city}" />
                    </div>
                </div>    
                <div class="form-group">
                    <label class="control-label" for="ship_zip">{lang}Zipcode{/lang}:</label>
                    <div class="col">
                        <input type="text" class="form-control" name="ship_zip" id="ship_zip" value="{$order.ship_zip}" />
                    </div>
                </div>    
                <div class="form-group">
                    <label class="control-label" for="ship_country">{lang}Country{/lang}:</label>
                    <div class="col">
                        <select name="ship_country" class="form-control" id="ship_country">{country_list}</select>
                    </div>
                </div>
                <div class="form-group">
                    <div id="ship_state_div">
                        <label class="control-label" for="ship_state">{lang}State{/lang}:</label>
                        <div class="col">
                            <select name="ship_state" class="form-control" id="ship_state">{state_list}</select>
                        </div>
                    </div>
                </div>
            </div>
            <h3>{lang}Contact Information{/lang}</h3>
            <div class="form-group">
                <label class="control-label" for="email">{lang}E-mail{/lang}:</label>
                <div class="col">
                    <input type="text" class="form-control" name="email" id="email" value="{if $customer.Customer.email}{$customer.Customer.email}{else}{$order.email}{/if}" />
                </div>
            </div>
            <div class="form-group">
                <label class="control-label" for="phone">{lang}Phone{/lang}:</label>
                <div class="col">
                    <input type="text" class="form-control" name="phone" id="phone" value="{if $customer.AddressBook.phone}{$customer.AddressBook.phone}{else}{$order.phone}{/if}" />
                </div>
            </div>
            <div class="form-group">
                <label class="control-label" for="comment">{lang}Order Comments{/lang}:</label>
                <div class="col">
                    <textarea class="form-control" name="comment" id="comment" cols="30" rows="5">{$order_comment}</textarea>
                </div>
            </div>
          <div class="form-group-coupon"></div>
            {module alias="coupons" action="checkout_box"}
        </div>
        <div class="information-right">
            <div id="shipping_method">
                <h3>{lang}Shipping Method{/lang}</h3>
                <div class="clearfix">
                    <ul class="shipping-methods">
                        {foreach from=$ship_methods item=ship_method}
                            <li class="item{if $ship_method.id == $order.shipping_method_id} sselected{/if}">
                                <div class="radio"> 
                                    <input type="radio" name="shipping_method_id" value="{$ship_method.id}" id="ship_{$ship_method.id}" {if $ship_method.id == $order.shipping_method_id} checked="checked"{/if}/>
                                </div>
                                <div class="shipping-logo">
                                    {if $ship_method.icon}<img src="{base_path}/img/icons/shipping/{$ship_method.icon}" alt="{$ship_method.name}" title="{$ship_method.name}" /> {/if}
                                </div>
                                <div class="shipping-name">
                                    {if $ship_method.cost_plain > 0}<span class="description">{$ship_method.cost}</span>{/if}<span class="name">{lang}{$ship_method.name}{/lang}</span>
                                    <br/>{if $ship_method.description}<span class="description">{$ship_method.description}</span>{/if}
                                </div>    
                            </li>
                        {/foreach}
                    </ul>
                </div>
            </div>
            <div id="payment_method">
                <h3>{lang}Payment Method{/lang}</h3>
                <div class="clearfix">
                    <ul class="payment-methods">
                        {foreach from=$payment_methods item=payment_method}
                            <li class="item{if $payment_method.id == $order.payment_method_id} sselected{/if}">
                                <div class="radio"> 
                                     <input type="radio" name="payment_method_id" value="{$payment_method.id}" id="payment_{$payment_method.id}" {if $payment_method.id == $order.payment_method_id} checked="checked" {/if}/>
                                </div>
                                <div class="shipping-logo">
                                    {if $payment_method.icon}<img class="text-center" src="{base_path}/img/icons/payment/{$payment_method.icon}" alt="{$payment_method.name}" title="{$payment_method.name}" /> {/if}
                                </div>
                                <div class="shipping-name">
                                    <span class="name">{lang}{$payment_method.name}{/lang}</span>
                                    <br/>{if $payment_method.description}<span class="description">{$payment_method.description}</span>{/if}
                                </div>
                            </li>
                        {/foreach}
                    </ul>
                </div>    
            </div>
        </div>
        <div class="clear"></div>
        <div class="form-group-but">
            <div class="col-but">
                <button class="btn-warning" type="submit" value="Продолжить"><i class="check"></i> Продолжить</button>
            </div>
            <div class="clear"></div>
        </div>
    </form>
</div>

';

Ссылка на сообщение
Поделиться на другие сайты
  • 2 weeks later...

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

А быстрое оформление не предвидется добавить в ближайшее время?

Ссылка на сообщение
Поделиться на другие сайты

Положите свой файл function.checkout.php в папку /app/Vendor/smarty/local_plugins/

Тогда Ваш файл затрагиваться обновлениями не будет.

В смысле, быстрое оформление?!

По умолчанию оно и так быстрое, на одной странице + модуль купить за 1 клик на странице карточки товара.

Ссылка на сообщение
Поделиться на другие сайты

Получается любой файл в эту папку положить и он обновляться не будет? Я правильно понял?

По поводу быстрого оформления, "купить за один клик" это хорошо, а если 10 или больше позиций товара, получается было бы неплохо сделать типа заказ за один клик в корзине, а не только из карточки товара. Что бы клиент не диктовал эту кучу позиций по телефону, а только дал данные для доставки.

Ссылка на сообщение
Поделиться на другие сайты

Да, это касается любого файла в папке /app/Vendor/smarty/vam_plugins

Так обычное оформление чем неудобное?!

Отключите всё лишнее, точнее удалите, да и всё.

Ссылка на сообщение
Поделиться на другие сайты

Прошу прощения за беспокойство, изменил форму, поубирал ненужные мне поля, и снова при выборе например области из выпадающего меню, выдает старую форму со всем списком полей, я так понял форма подгружается из файла  function.checkout.php, опять вставил новую форму в этот файл и пустая страница как в прошлый раз, что я не так сделал? Вы мне в прошлый раз скинули этот файл с правками и заработало, но не объяснили в чем проблема. Можете еще раз так сделать? Этот файл прилагаю! Спасибо!

 

function.checkout.php

Ссылка на сообщение
Поделиться на другие сайты

Если я правильно помню была проблема в кавычках в javascript коде, который сверху в файле выводится.

Попробуйте javascript код взять из рабочего файла к себе.

т.е. блок кода <script> ... </script>

Ссылка на сообщение
Поделиться на другие сайты

Да, все правильно, сравнил 2 файла нашел 10 отличий и заменил ) . Почему сам раньше не допер так сделать. Спасибо!

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

Ссылка на сообщение
Поделиться на другие сайты

Можно.

Вот ответ в faq - http://forum.vamshop.ru/topic/13212-%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0-%D0%B2-vamshop-2-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8-%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0-%D0%BF%D0%BE-%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D1%8E/

т.е. Вам нужно в Админке - Оформление - Шаблоны - Шаблон категории, там где идёт строка вывода товара, т.е. шаблон product-listing, добавить параметр order="order-asc"

Тогда по умолчанию в категории товар будет сортироваться по порядку сортировки.

Ссылка на сообщение
Поделиться на другие сайты

Спасибо, и еще один вопрос, только что заметил, захожу в расширения - теги, в админке, ошибка 500, сервер не отвечает. Что это может быть? Как его полечить?

Ссылка на сообщение
Поделиться на другие сайты

Видимо, что-то в /app/Vendor/smarty/vam_plugins/ правили и не то что-то сделали.

Попробуйте свою папку vam_plugins-backup например назвать.

И взять оригинальную папку vam_plugins из vamshop.ru/vamshop2.zip

Что б убидиться, дело в Ваших правках или нет.

Ссылка на сообщение
Поделиться на другие сайты

Протестил, ошибки нет, но не показывает ниодного тега, пустая страница, но по сути они же работают, сайт работает

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...