3 авг. 2016 г., 6:38

Как сделать Redirect

Добрый день! Смысл в том, чтобы после оформления заказа клиент был перенаправлен в личный кабинет или на главную страницы. Вопрос в том — как и самое главное где прописать редирект. Скорее всего это легче сделать средствами JavaScript.
Попытался изменить код в обработчике формы «Оформить заказ» в файле accept.tpl:
{if $smarty.post.submit} {*processor action="web/basket/order/submit" ns="basket" params=$smarty.post assign=order_result*} {processor action="shopmodx/orders/submit" ns="shopmodx" params=$smarty.post assign=order_result} {if !$order_result.success} <div class="alert alert-danger"> {$order_result.message|default:"Ошибка выполнения запроса"} </div> {if $order_result.field_errors} <div class="alert alert-info"> {foreach $order_result.field_errors as $n => $err} <p>{$err}</p> {/foreach} </div> {/if} {/if} {* Способ увидеть весь ответ от процессора *} {*<pre> {print_r($order_result)} </pre>*} < scrip t typ e="text/javascrip t"> window.location = "index.php"; < / scrip t> {/if}
Добавил:
< scrip t typ e="text/javascrip t"> window.location = "index.php"; < / scrip t>
Но никаких действий не происходит.
Можете вот такой код прописать, чтобы человек успел прочитать сообщение, и только через какое-то время его перекинуло:
setTimeout(function(){ window.location.replace('/'); }, 3000 // Интервал в милисекундах )
Не работает. Ни первый, ни второй варианты… Вообще ничего не происходит.
Больше комментариев не будет?
Денис, я забыл, что форма оформления заказа аджаксовая, соответственно никакие такие хитрости на уровне шаблона работать не будут. Это надо в самом JS-е прописывать. Пришлите мне SSH-доступ к серверу, добавлю функцию и пересоберу фронт. Нужен именно SSH, FTP не пойдет.
Добрый день! Выслал данные в личку.
Все, сделал. В common.js дописал
if(action == 'order/submit'){ setTimeout(function(){ window.location.replace('/'); }, 1000 // Интервал в милисекундах ) }
Спасибо! То что надо!

Добавить комментарий