Jump to content
Ryan_Glass

[solved] Redirect to last page after login - 1.5

Recommended Posts

Hi,

 

When customers login I'd like to redirect them to the last page that they visited rather than their My Account page.

 

I think that this will be done by replacing some code in the AuthController.php file (I have seen the issue solved for Prestashop 1.4 using this.) but which code do I replace and with what in version 1.5.

 

Thanks for your help.

Share this post


Link to post
Share on other sites

in this case you have to open autentication page with additional param: &back=URL_TO_THE_WEBSITE

then add this param to the <form action=""> param

Share this post


Link to post
Share on other sites

Thanks for the info,

 

So is this the code that I add the parameter to:

 

if (!Tools::getIsset('step') && $this->context->customer->isLogged() && !$this->ajax)
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? url_encode($this->authRedirection) : 'my-account'));

if (Tools::getValue('create_account'))
$this->create_account = true;

 

and this is the code that I add:

 

&back=URL_TO THE_WEBSITE

 

where exactly would I put the code?

 

Sorry for my ignorance - this is pushing my skills!

Share this post


Link to post
Share on other sites

Hi again,

 

I'd be very grateful for some help with this - I'm not really sure what an aditional parameter is or how to add it to the <form action="">

 

Many thanks!

Share this post


Link to post
Share on other sites

can you show the authentication.tpl file ? it is located in your theme directory (themes/your_theme)

Share this post


Link to post
Share on other sites

OK - here is the code from the authentication.tpl file:

 

{*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2013 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
{capture name=path}{l s='Login'}{/capture}
{include file="$tpl_dir./breadcrumb.tpl"}

<script type="text/javascript">
// <![CDATA[
var idSelectedCountry = {if isset($smarty.post.id_state)}{$smarty.post.id_state|intval}{else}false{/if};
var countries = new Array();
var countriesNeedIDNumber = new Array();
var countriesNeedZipCode = new Array();
{if isset($countries)}
{foreach from=$countries item='country'}
 {if isset($country.states) && $country.contains_states}
  countries[{$country.id_country|intval}] = new Array();
  {foreach from=$country.states item='state' name='states'}
   countries[{$country.id_country|intval}].push({ldelim}'id' : '{$state.id_state|intval}', 'name' : '{$state.name|addslashes}'{rdelim});
  {/foreach}
 {/if}
 {if $country.need_identification_number}
  countriesNeedIDNumber.push({$country.id_country|intval});
 {/if}
 {if isset($country.need_zip_code)}
  countriesNeedZipCode[{$country.id_country|intval}] = {$country.need_zip_code};
 {/if}
{/foreach}
{/if}
$(function(){ldelim}
$('.id_state option[value={if isset($smarty.post.id_state)}{$smarty.post.id_state|intval}{else}{if isset($address)}{$address->id_state|intval}{/if}{/if}]').attr('selected', true);
{rdelim});
//]]>
{literal}
$(document).ready(function() {
$('#company').blur(function(){
 vat_number();
});
vat_number();
function vat_number()
{
 if ($('#company').val() != '')
  $('#vat_number').show();
 else
  $('#vat_number').hide();
}
});
{/literal}
</script>
<h1>{if !isset($email_create)}{l s='Log in'}{else}{l s='Create an account'}{/if}</h1>
{if !isset($back) || $back != 'my-account'}{assign var='current_step' value='login'}{include file="$tpl_dir./order-steps.tpl"}{/if}
{include file="$tpl_dir./errors.tpl"}
{assign var='stateExist' value=false}
{if !isset($email_create)}
<script type="text/javascript">
{literal}
$(document).ready(function(){
 // Retrocompatibility with 1.4
 if (typeof baseUri === "undefined" && typeof baseDir !== "undefined")
 baseUri = baseDir;
 $('#create-account_form').submit(function(){
  submitFunction();
  return false;
 });
});
function submitFunction()
{
 $('#create_account_error').html('').hide();
 //send the ajax request to the server
 $.ajax({
  type: 'POST',
  url: baseUri,
  async: true,
  cache: false,
  dataType : "json",
  data: {
   controller: 'authentication',
   SubmitCreate: 1,
   ajax: true,
   email_create: $('#email_create').val(),
   back: $('input[name=back]').val(),
   token: token
  },
  success: function(jsonData)
  {
   if (jsonData.hasError)
   {
 var errors = '';
 for(error in jsonData.errors)
  //IE6 bug fix
  if(error != 'indexOf')
   errors += '<li>'+jsonData.errors[error]+'</li>';
 $('#create_account_error').html('<ol>'+errors+'</ol>').show();
   }
   else
   {
 // adding a div to display a transition
 $('#center_column').html('<div id="noSlide">'+$('#center_column').html()+'</div>');
 $('#noSlide').fadeOut('slow', function(){
  $('#noSlide').html(jsonData.page);
  // update the state (when this file is called from AJAX you still need to update the state)		
  bindStateInputAndUpdate();
  $(this).fadeIn('slow', function(){
   document.location = '#account-creation';
  });
 });
   }
  },
  error: function(XMLHttpRequest, textStatus, errorThrown)
  {
   alert("TECHNICAL ERROR: unable to load form.\n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
  }
 });
}
{/literal}
</script>
<!--{if isset($authentification_error)}
<div class="error">
 {if {$authentification_error|@count} == 1}
  <p>{l s='There\'s at least one error'} :</p>
  {else}
  <p>{l s='There are %s errors' sprintf=[$account_error|@count]} :</p>
 {/if}
 <ol>
  {foreach from=$authentification_error item=v}
   <li>{$v}</li>
  {/foreach}
 </ol>
</div>
{/if}-->
<form action="{$link->getPageLink('authentication', true)}" method="post" id="create-account_form" class="std">
 <fieldset>
  <h3>{l s='Create an account'}</h3>
  <div class="form_content clearfix">
   <p class="title_block">{l s='Please enter your email address to create an account.'}.</p>
   <div class="error" id="create_account_error" style="display:none"></div>
   <p class="text">
 <label for="email_create">{l s='Email address'}</label>
 <span><input type="text" id="email_create" name="email_create" value="{if isset($smarty.post.email_create)}{$smarty.post.email_create|stripslashes}{/if}" class="account_input" /></span>
   </p>
   <p class="submit">
 {if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}
 <input type="submit" id="SubmitCreate" name="SubmitCreate" class="button_large" value="{l s='Create an account'}" />
 <input type="hidden" class="hidden" name="SubmitCreate" value="{l s='Create an account'}" />
   </p>
  </div>
 </fieldset>
</form>
<form action="{$link->getPageLink('authentication', true)}" method="post" id="login_form" class="std">
 <fieldset>
  <h3>{l s='Already registered?'}</h3>
  <div class="form_content clearfix">
   <p class="text">
 <label for="email">{l s='Email address'}</label>
 <span><input type="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email|stripslashes}{/if}" class="account_input" /></span>
   </p>
   <p class="text">
 <label for="passwd">{l s='Password'}</label>
 <span><input type="password" id="passwd" name="passwd" value="{if isset($smarty.post.passwd)}{$smarty.post.passwd|stripslashes}{/if}" class="account_input" /></span>
   </p>
   <p class="lost_password"><a href="{$link->getPageLink('password')}">{l s='Forgot your password?'}</a></p>
   <p class="submit">
 {if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}
 <input type="submit" id="SubmitLogin" name="SubmitLogin" class="button" value="{l s='Log in'}" />
   </p>
  </div>
 </fieldset>
</form>

{if isset($inOrderProcess) && $inOrderProcess && $PS_GUEST_CHECKOUT_ENABLED}
<form action="{$link->getPageLink('authentication', true, NULL, "back=$back")}" method="post" id="new_account_form" class="std clearfix">
 <fieldset>
  <h3>{l s='Instant checkout'}</h3>
  <div id="opc_account_form" style="display: block; ">
   <!-- Account -->
   <p class="required text">
 <label for="guest_email">{l s='Email address'} <sup>*</sup></label>
 <input type="text" class="text" id="guest_email" name="guest_email" value="{if isset($smarty.post.guest_email)}{$smarty.post.guest_email}{/if}" />
   </p>
   <p class="radio required">
 <span>{l s='Title'}</span>
 {foreach from=$genders key=k item=gender}
  <input type="radio" name="id_gender" id="id_gender{$gender->id}" value="{$gender->id}"{if isset($smarty.post.id_gender) && $smarty.post.id_gender == $gender->id} checked="checked"{/if} />
  <label for="id_gender{$gender->id}" class="top">{$gender->name}</label>
 {/foreach}
   </p>
   <p class="required text">
 <label for="firstname">{l s='First name'} <sup>*</sup></label>
 <input type="text" class="text" id="firstname" name="firstname" onblur="$('#customer_firstname').val($(this).val());" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}" />
 <input type="hidden" class="text" id="customer_firstname" name="customer_firstname" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}" />
   </p>
   <p class="required text">
 <label for="lastname">{l s='Last name'} <sup>*</sup></label>
 <input type="text" class="text" id="lastname" name="lastname" onblur="$('#customer_lastname').val($(this).val());" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}" />
 <input type="hidden" class="text" id="customer_lastname" name="customer_lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}" />
   </p>
   <p class="select">
 <span>{l s='Date of Birth'}</span>
 <select id="days" name="days">
  <option value="">-</option>
  {foreach from=$days item=day}
   <option value="{$day}" {if ($sl_day == $day)} selected="selected"{/if}>{$day}  </option>
  {/foreach}
 </select>
   {*
    {l s='January'}
    {l s='February'}
    {l s='March'}
    {l s='April'}
    {l s='May'}
    {l s='June'}
    {l s='July'}
    {l s='August'}
    {l s='September'}
    {l s='October'}
    {l s='November'}
    {l s='December'}
   *}
 <select id="months" name="months">
  <option value="">-</option>
  {foreach from=$months key=k item=month}
   <option value="{$k}" {if ($sl_month == $k)} selected="selected"{/if}>{l s=$month} </option>
  {/foreach}
 </select>
 <select id="years" name="years">
  <option value="">-</option>
  {foreach from=$years item=year}
   <option value="{$year}" {if ($sl_year == $year)} selected="selected"{/if}>{$year}  </option>
  {/foreach}
 </select>
   </p>
   {if isset($newsletter) && $newsletter}
 <p class="checkbox">
  <input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) && $smarty.post.newsletter == '1'}checked="checked"{/if} />
  <label for="newsletter">{l s='Sign up for our newsletter!'}</label>
 </p>
 <p class="checkbox">
  <input type="checkbox" name="optin" id="optin" value="1" {if isset($smarty.post.optin) && $smarty.post.optin == '1'}checked="checked"{/if} />
  <label for="optin">{l s='Receive special offers from our partners!'}</label>
 </p>
   {/if}
   <h3>{l s='Delivery address'}</h3>
   {foreach from=$dlv_all_fields item=field_name}
 {if $field_name eq "company"}
  <p class="text">
   <label for="company">{l s='Company'}</label>
   <input type="text" class="text" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}" />
  </p>
  {elseif $field_name eq "vat_number"}
  <div id="vat_number" style="display:none;">
   <p class="text">
    <label for="vat_number">{l s='VAT number'}</label>
    <input type="text" class="text" name="vat_number" value="{if isset($smarty.post.vat_number)}{$smarty.post.vat_number}{/if}" />
   </p>
  </div>
  {elseif $field_name eq "address1"}
  <p class="required text">
   <label for="address1">{l s='Address'} <sup>*</sup></label>
   <input type="text" class="text" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" />
  </p>
  {elseif $field_name eq "postcode"}
  <p class="required postcode text">
   <label for="postcode">{l s='Zip / Postal Code'} <sup>*</sup></label>
   <input type="text" class="text" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onblur="$('#postcode').val($('#postcode').val().toUpperCase());" />
  </p>
  {elseif $field_name eq "city"}
  <p class="required text">
   <label for="city">{l s='City'} <sup>*</sup></label>
   <input type="text" class="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}" />
  </p>
  <!--
	  if customer hasn't update his layout address, country has to be verified
	  but it's deprecated
	 -->
  {elseif $field_name eq "Country:name" || $field_name eq "country"}
  <p class="required select">
   <label for="id_country">{l s='Country'} <sup>*</sup></label>
   <select name="id_country" id="id_country">
    <option value="">-</option>
    {foreach from=$countries item=v}
	 <option value="{$v.id_country}" {if ($sl_country == $v.id_country)} selected="selected"{/if}>{$v.name}</option>
    {/foreach}
   </select>
  </p>
  {elseif $field_name eq "State:name"}
  {assign var='stateExist' value=true}

  <p class="required id_state select">
   <label for="id_state">{l s='State'} <sup>*</sup></label>
   <select name="id_state" id="id_state">
    <option value="">-</option>
   </select>
  </p>
  {elseif $field_name eq "phone"}
  <p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text">
   <label for="phone">{l s='Phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
   <input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}"/>
  </p>
 {/if}
   {/foreach}
   {if $stateExist eq false}
 <p class="required id_state select">
  <label for="id_state">{l s='State'} <sup>*</sup></label>
  <select name="id_state" id="id_state">
   <option value="">-</option>
  </select>
 </p>
   {/if}
   <input type="hidden" name="alias" id="alias" value="{l s='My address'}" />
   <input type="hidden" name="is_new_customer" id="is_new_customer" value="0" />
   <!-- END Account -->
  </div>
 </fieldset>
 <fieldset class="account_creation dni">
  <h3>{l s='Tax identification'}</h3>
  <p class="required text">
   <label for="dni">{l s='Identification number'}</label>
   <input type="text" class="text" name="dni" id="dni" value="{if isset($smarty.post.dni)}{$smarty.post.dni}{/if}" />
   <span class="form_info">{l s='DNI / NIF / NIE'}</span>
  </p>
 </fieldset>
 {$HOOK_CREATE_ACCOUNT_FORM}
 <p class="cart_navigation required submit">
  <span><sup>*</sup>{l s='Required field'}</span>
  <input type="hidden" name="display_guest_checkout" value="1" />
  <input type="submit" class="exclusive" name="submitGuestAccount" id="submitGuestAccount" value="{l s='Continue'}" />
 </p>
</form>
{/if}
{else}
<!--{if isset($account_error)}
<div class="error">
 {if {$account_error|@count} == 1}
  <p>{l s='There\'s at least one error'} :</p>
  {else}
  <p>{l s='There are %s errors' sprintf=[$account_error|@count]} :</p>
 {/if}
 <ol>
  {foreach from=$account_error item=v}
   <li>{$v}</li>
  {/foreach}
 </ol>
</div>
{/if}-->
<form action="{$link->getPageLink('authentication', true)}" method="post" id="account-creation_form" class="std">
{$HOOK_CREATE_ACCOUNT_TOP}
<fieldset class="account_creation">
 <h3>{l s='Your personal information'}</h3>
 <p class="radio required">
  <span>{l s='Title'}</span>
  {foreach from=$genders key=k item=gender}
   <input type="radio" name="id_gender" id="id_gender{$gender->id}" value="{$gender->id}" {if isset($smarty.post.id_gender) && $smarty.post.id_gender == $gender->id}checked="checked"{/if} />
   <label for="id_gender{$gender->id}" class="top">{$gender->name}</label>
  {/foreach}
 </p>
 <p class="required text">
  <label for="customer_firstname">{l s='First name'} <sup>*</sup></label>
  <input onkeyup="$('#firstname').val(this.value);" type="text" class="text" id="customer_firstname" name="customer_firstname" value="{if isset($smarty.post.customer_firstname)}{$smarty.post.customer_firstname}{/if}" />
 </p>
 <p class="required text">
  <label for="customer_lastname">{l s='Last name'} <sup>*</sup></label>
  <input onkeyup="$('#lastname').val(this.value);" type="text" class="text" id="customer_lastname" name="customer_lastname" value="{if isset($smarty.post.customer_lastname)}{$smarty.post.customer_lastname}{/if}" />
 </p>
 <p class="required text">
  <label for="email">{l s='Email'} <sup>*</sup></label>
  <input type="text" class="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email}{/if}" />
 </p>
 <p class="required password">
  <label for="passwd">{l s='Password'} <sup>*</sup></label>
  <input type="password" class="text" name="passwd" id="passwd" />
  <span class="form_info">{l s='(Five characters minimum)'}</span>
 </p>
 <p class="select">
  <span>{l s='Date of Birth'}</span>
  <select id="days" name="days">
   <option value="">-</option>
   {foreach from=$days item=day}
 <option value="{$day}" {if ($sl_day == $day)} selected="selected"{/if}>{$day}  </option>
   {/foreach}
  </select>
  {*
   {l s='January'}
   {l s='February'}
   {l s='March'}
   {l s='April'}
   {l s='May'}
   {l s='June'}
   {l s='July'}
   {l s='August'}
   {l s='September'}
   {l s='October'}
   {l s='November'}
   {l s='December'}
  *}
  <select id="months" name="months">
   <option value="">-</option>
   {foreach from=$months key=k item=month}
 <option value="{$k}" {if ($sl_month == $k)} selected="selected"{/if}>{l s=$month} </option>
   {/foreach}
  </select>
  <select id="years" name="years">
   <option value="">-</option>
   {foreach from=$years item=year}
 <option value="{$year}" {if ($sl_year == $year)} selected="selected"{/if}>{$year}  </option>
   {/foreach}
  </select>
 </p>
 {if $newsletter}
 <p class="checkbox" >
  <input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) AND $smarty.post.newsletter == 1} checked="checked"{/if} />
  <label for="newsletter">{l s='Sign up for our newsletter!'}</label>
 </p>
 <p class="checkbox" >
  <input type="checkbox"name="optin" id="optin" value="1" {if isset($smarty.post.optin) AND $smarty.post.optin == 1} checked="checked"{/if} />
  <label for="optin">{l s='Receive special offers from our partners!'}</label>
 </p>
 {/if}
</fieldset>
{if $b2b_enable}
<fieldset class="account_creation">
 <h3>{l s='Your company information'}</h3>
 <p class="text">
  <label for="">{l s='Company'}</label>
  <input type="text" class="text" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}" />
 </p>
 <p class="text">
  <label for="siret">{l s='SIRET'}</label>
  <input type="text" class="text" id="siret" name="siret" value="{if isset($smarty.post.siret)}{$smarty.post.siret}{/if}" />
 </p>
 <p class="text">
  <label for="ape">{l s='APE'}</label>
  <input type="text" class="text" id="ape" name="ape" value="{if isset($smarty.post.ape)}{$smarty.post.ape}{/if}" />
 </p>
 <p class="text">
  <label for="website">{l s='Website'}</label>
  <input type="text" class="text" id="website" name="website" value="{if isset($smarty.post.website)}{$smarty.post.website}{/if}" />
 </p>
</fieldset>
{/if}
{if isset($PS_REGISTRATION_PROCESS_TYPE) && $PS_REGISTRATION_PROCESS_TYPE}
<fieldset class="account_creation">
 <h3>{l s='Your address'}</h3>
 {foreach from=$dlv_all_fields item=field_name}
  {if $field_name eq "company"}
   <p class="text">
 <label for="company">{l s='Company'}</label>
 <input type="text" class="text" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}" />
   </p>
  {elseif $field_name eq "vat_number"}
   <div id="vat_number" style="display:none;">
 <p class="text">
  <label for="vat_number">{l s='VAT number'}</label>
  <input type="text" class="text" name="vat_number" value="{if isset($smarty.post.vat_number)}{$smarty.post.vat_number}{/if}" />
 </p>
   </div>
  {elseif $field_name eq "firstname"}
   <p class="required text">
 <label for="firstname">{l s='First name'} <sup>*</sup></label>
 <input type="text" class="text" id="firstname" name="firstname" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}" />
   </p>
  {elseif $field_name eq "lastname"}
   <p class="required text">
 <label for="lastname">{l s='Last name'} <sup>*</sup></label>
 <input type="text" class="text" id="lastname" name="lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}" />
   </p>
  {elseif $field_name eq "address1"}
   <p class="required text">
 <label for="address1">{l s='Address'} <sup>*</sup></label>
 <input type="text" class="text" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" />
 <span class="inline-infos">{l s='Street address, P.O. Box, Company name, etc.'}</span>
   </p>
  {elseif $field_name eq "address2"}
   <p class="text">
 <label for="address2">{l s='Address (Line 2)'}</label>
 <input type="text" class="text" name="address2" id="address2" value="{if isset($smarty.post.address2)}{$smarty.post.address2}{/if}" />
 <span class="inline-infos">{l s='Apartment, suite, unit, building, floor, etc...'}</span>
   </p>
  {elseif $field_name eq "postcode"}
   <p class="required postcode text">
 <label for="postcode">{l s='Zip / Postal Code'} <sup>*</sup></label>
 <input type="text" class="text" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onkeyup="$('#postcode').val($('#postcode').val().toUpperCase());" />
   </p>
  {elseif $field_name eq "city"}
   <p class="required text">
 <label for="city">{l s='City'} <sup>*</sup></label>
 <input type="text" class="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}" />
   </p>
   <!--
 if customer hasn't update his layout address, country has to be verified
 but it's deprecated
   -->
  {elseif $field_name eq "Country:name" || $field_name eq "country"}
   <p class="required select">
 <label for="id_country">{l s='Country'} <sup>*</sup></label>
 <select name="id_country" id="id_country">
  <option value="">-</option>
  {foreach from=$countries item=v}
  <option value="{$v.id_country}" {if ($sl_country == $v.id_country)} selected="selected"{/if}>{$v.name}</option>
  {/foreach}
 </select>
   </p>
  {elseif $field_name eq "State:name" || $field_name eq 'state'}
   {assign var='stateExist' value=true}
   <p class="required id_state select">
 <label for="id_state">{l s='State'} <sup>*</sup></label>
 <select name="id_state" id="id_state">
  <option value="">-</option>
 </select>
   </p>
  {/if}
 {/foreach}
 {if $stateExist eq false}
  <p class="required id_state select">
   <label for="id_state">{l s='State'} <sup>*</sup></label>
   <select name="id_state" id="id_state">
 <option value="">-</option>
   </select>
  </p>
 {/if}
 <p class="textarea">
  <label for="other">{l s='Additional information'}</label>
  <textarea name="other" id="other" cols="26" rows="3">{if isset($smarty.post.other)}{$smarty.post.other}{/if}</textarea>
 </p>
 {if isset($one_phone_at_least) && $one_phone_at_least}
  <p class="inline-infos">{l s='You must register at least one phone number.'}</p>
 {/if}
 <p class="text">
  <label for="phone">{l s='Home phone'}</label>
  <input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}" />
 </p>
 <p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if} text">
  <label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
  <input type="text" class="text" name="phone_mobile" id="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{/if}" />
 </p>
 <p class="required text" id="address_alias">
  <label for="alias">{l s='Assign an address alias for future reference.'} <sup>*</sup></label>
  <input type="text" class="text" name="alias" id="alias" value="{if isset($smarty.post.alias)}{$smarty.post.alias}{else}{l s='My address'}{/if}" />
 </p>
</fieldset>
<fieldset class="account_creation dni">
 <h3>{l s='Tax identification'}</h3>
 <p class="required text">
  <label for="dni">{l s='Identification number'} <sup>*</sup></label>
  <input type="text" class="text" name="dni" id="dni" value="{if isset($smarty.post.dni)}{$smarty.post.dni}{/if}" />
  <span class="form_info">{l s='DNI / NIF / NIE'}</span>
 </p>
</fieldset>
{/if}
{$HOOK_CREATE_ACCOUNT_FORM}
<p class="cart_navigation required submit">
 <input type="hidden" name="email_create" value="1" />
 <input type="hidden" name="is_new_customer" value="1" />
 {if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}
 <input type="submit" name="submitAccount" id="submitAccount" value="{l s='Register'}" class="exclusive" />
 <span><sup>*</sup>{l s='Required field'}</span>
</p>
</form>
{/if}

Share this post


Link to post
Share on other sites

thanks!

 

you've got there code:

 <fieldset>
  <h3>{l s='Already registered?'}</h3>
  <div class="form_content clearfix">
   <p class="text">
	 <label for="email">{l s='Email address'}</label>
	 <span><input type="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email|stripslashes}{/if}" class="account_input" /></span>
   </p>
   <p class="text">
	 <label for="passwd">{l s='Password'}</label>
	 <span><input type="password" id="passwd" name="passwd" value="{if isset($smarty.post.passwd)}{$smarty.post.passwd|stripslashes}{/if}" class="account_input" /></span>
   </p>
   <p class="lost_password"><a href="{$link->getPageLink('password')}">{l s='Forgot your password?'}</a></p>
   <p class="submit">
	 {if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}
	 <input type="submit" id="SubmitLogin" name="SubmitLogin" class="button" value="{l s='Log in'}" />
   </p>
  </div>
 </fieldset>

 

 

change the line:

{if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}

 

to:

<input type="hidden" class="hidden" name="back" value="{$smarty.server.HTTP_REFERER}" />

  • Like 8

Share this post


Link to post
Share on other sites

you're welcome B) glad that i could help you

 

Im going to mark this thread as [solved] now :)

 

happy selling :)

Share this post


Link to post
Share on other sites

Hello vekia

it happen to me too I did the same as you say but it worked good for while but it went back to same thing

mine is PrestaShop™ 1.4.7.3

 

any idea for me?

 

Thanks

any chance to check your website? if so - please share url

Share this post


Link to post
Share on other sites

worked great!  but How would I apply this same logic to the cart?  Loging in during checkout?  What file?  and what code should I replace?  Thank you in advance. 

Share this post


Link to post
Share on other sites

this method should work also for cart during checkout, customer will be redirected to latest viewed page

Share this post


Link to post
Share on other sites

Great enhancement. One new problem arises after this. During checkout at logon (step 2) you are now redirected back to step 1 instead of 3.

Share this post


Link to post
Share on other sites

in this case you have to modify code a bit, add {if} condition where you check refferer link, if there is order step just redirect to order3 step :)

Share this post


Link to post
Share on other sites

Thank you. I knew what I wanted, but am new to PrestaShop and Smarty. Following code is working fine for me now. Added html escape to referrer links for added security

 

To find the URL you need in the first line of code you logout from your account and go to the first step in your checkout. The url shown in your browser is the one you need here

{if $smarty.server.HTTP_REFERER == "https://my.webshop.nl/shop/nl/order"}
{if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}
{else}
<input type="hidden" class="hidden" name="back" value="{$smarty.server.HTTP_REFERER|escape:'htmlall':'UTF-8'}" />
{/if}
Edited by Centio (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

@vekia first I want to thank you for your effort in bringing Prestashop customization solutions.

I use version 1.5.6.2 Prestashop and I want the visitor who decided to authenticated on a product page, to be returned after you back to that product page. The solution you presented above does not work.

Can you help me with a suggestion?

Thanks

Share this post


Link to post
Share on other sites

Hello,

 

i like to redirect the checkout only if on the basket there are a product. If on basket there aren't any product redirect on the last page (or home page).

 

I use 1.5.

 

Thank's

Share this post


Link to post
Share on other sites

Just wanted to piggyback on this thread. 

I am looking to have the customer be directed to the home page after logging in.  Can you tell me what I need to edit to do that?

 

Redirect enrollees to the home page instead of the "My Account" :unsure:

Thanks!

Share this post


Link to post
Share on other sites

Hi, 

how can the redirect be to the home page , instead of the last visited page?

thank you !

Share this post


Link to post
Share on other sites

You should remove my-account (but leave the quotes) from following line in authentication.tpl . Should take you back to homepage after succesfull login

 

if (!Tools::getIsset('step') && $this->context->customer->isLogged() && !$this->ajax)
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? url_encode($this->authRedirection) : 'my-account'));

Share this post


Link to post
Share on other sites

you can use solution that i provided one page before, instead of the back page use just homepage link,

voila ;)

Share this post


Link to post
Share on other sites

Hi, all

 

In 1.6.0.8 and the default theme the authentication.tpl is different than posted here. Could anyone advise what needs to be changed in order redirect to last page after login?

 

Here is the authentication.tpl:

 

{*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2014 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
{capture name=path}
{if !isset($email_create)}{l s='Authentication'}{else}
<a href="{$link->getPageLink('authentication', true)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Authentication'}">{l s='Authentication'}</a>
<span class="navigation-pipe">{$navigationPipe}</span>{l s='Create your account'}
{/if}
{/capture}
<h1 class="page-heading">{if !isset($email_create)}{l s='Authentication'}{else}{l s='Create an account'}{/if}</h1>
{if isset($back) && preg_match("/^http/", $back)}{assign var='current_step' value='login'}{include file="$tpl_dir./order-steps.tpl"}{/if}
{include file="$tpl_dir./errors.tpl"}
{assign var='stateExist' value=false}
{assign var="postCodeExist" value=false}
{assign var="dniExist" value=false}
{if !isset($email_create)}
<!--{if isset($authentification_error)}
<div class="alert alert-danger">
{if {$authentification_error|@count} == 1}
<p>{l s='There\'s at least one error'} :</p>
{else}
<p>{l s='There are %s errors' sprintf=[$account_error|@count]} :</p>
{/if}
<ol>
{foreach from=$authentification_error item=v}
<li>{$v}</li>
{/foreach}
</ol>
</div>
{/if}-->
<div class="row">
<div class="col-xs-12 col-sm-6">
<form action="{$link->getPageLink('authentication', true)|escape:'html':'UTF-8'}" method="post" id="create-account_form" class="box">
<h3 class="page-subheading">{l s='Create an account'}</h3>
<div class="form_content clearfix">
<p>{l s='Please enter your email address to create an account.'}</p>
<div class="alert alert-danger" id="create_account_error" style="display:none"></div>
<div class="form-group">
<label for="email_create">{l s='Email address'}</label>
<input type="text" class="is_required validate account_input form-control" data-validate="isEmail" id="email_create" name="email_create" value="{if isset($smarty.post.email_create)}{$smarty.post.email_create|stripslashes}{/if}" />
</div>
<div class="submit">
{if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'html':'UTF-8'}" />{/if}
<button class="btn btn-default button button-medium exclusive" type="submit" id="SubmitCreate" name="SubmitCreate">
<span>
<i class="icon-user left"></i>
{l s='Create an account'}
</span>
</button>
<input type="hidden" class="hidden" name="SubmitCreate" value="{l s='Create an account'}" />
</div>
</div>
</form>
</div>
<div class="col-xs-12 col-sm-6">
<form action="{$link->getPageLink('authentication', true)|escape:'html':'UTF-8'}" method="post" id="login_form" class="box">
<h3 class="page-subheading">{l s='Already registered?'}</h3>
<div class="form_content clearfix">
<div class="form-group">
<label for="email">{l s='Email address'}</label>
<input class="is_required validate account_input form-control" data-validate="isEmail" type="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email|stripslashes}{/if}" />
</div>
<div class="form-group">
<label for="passwd">{l s='Password'}</label>
<span><input class="is_required validate account_input form-control" type="password" data-validate="isPasswd" id="passwd" name="passwd" value="{if isset($smarty.post.passwd)}{$smarty.post.passwd|stripslashes}{/if}" /></span>
</div>
<p class="lost_password form-group"><a href="{$link->getPageLink('password')|escape:'html':'UTF-8'}" title="{l s='Recover your forgotten password'}" rel="nofollow">{l s='Forgot your password?'}</a></p>
<p class="submit">
{if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'html':'UTF-8'}" />{/if}
<button type="submit" id="SubmitLogin" name="SubmitLogin" class="button btn btn-default button-medium">
<span>
<i class="icon-lock left"></i>
{l s='Sign in'}
</span>
</button>
</p>
</div>
</form>
</div>
</div>
{if isset($inOrderProcess) && $inOrderProcess && $PS_GUEST_CHECKOUT_ENABLED}
<form action="{$link->getPageLink('authentication', true, NULL, "back=$back")|escape:'html':'UTF-8'}" method="post" id="new_account_form" class="std clearfix">
<div class="box">
<div id="opc_account_form" style="display: block; ">
<h3 class="page-heading bottom-indent">{l s='Instant checkout'}</h3>
<!-- Account -->
<div class="required form-group">
<label for="guest_email">{l s='Email address'} <sup>*</sup></label>
<input type="text" class="is_required validate form-control" data-validate="isEmail" id="guest_email" name="guest_email" value="{if isset($smarty.post.guest_email)}{$smarty.post.guest_email}{/if}" />
</div>
<div class="cleafix gender-line">
<label>{l s='Title'}</label>
{foreach from=$genders key=k item=gender}
<div class="radio-inline">
<label for="id_gender{$gender->id}" class="top">
<input type="radio" name="id_gender" id="id_gender{$gender->id}" value="{$gender->id}"{if isset($smarty.post.id_gender) && $smarty.post.id_gender == $gender->id} checked="checked"{/if} />
{$gender->name}
</label>
</div>
{/foreach}
</div>
<div class="required form-group">
<label for="firstname">{l s='First name'} <sup>*</sup></label>
<input type="text" class="is_required validate form-control" data-validate="isName" id="firstname" name="firstname" onblur="$('#customer_firstname').val($(this).val());" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}" />
<input type="hidden" id="customer_firstname" name="customer_firstname" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}" />
</div>
<div class="required form-group">
<label for="lastname">{l s='Last name'} <sup>*</sup></label>
<input type="text" class="is_required validate form-control" data-validate="isName" id="lastname" name="lastname" onblur="$('#customer_lastname').val($(this).val());" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}" />
<input type="hidden" id="customer_lastname" name="customer_lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}" />
</div>
<div class="form-group date-select">
<label>{l s='Date of Birth'}</label>
<div class="row">
<div class="col-xs-4">
<select id="days" name="days" class="form-control">
<option value="">-</option>
{foreach from=$days item=day}
<option value="{$day}" {if ($sl_day == $day)} selected="selected"{/if}>{$day}  </option>
{/foreach}
</select>
{*
{l s='January'}
{l s='February'}
{l s='March'}
{l s='April'}
{l s='May'}
{l s='June'}
{l s='July'}
{l s='August'}
{l s='September'}
{l s='October'}
{l s='November'}
{l s='December'}
*}
</div>
<div class="col-xs-4">
<select id="months" name="months" class="form-control">
<option value="">-</option>
{foreach from=$months key=k item=month}
<option value="{$k}" {if ($sl_month == $k)} selected="selected"{/if}>{l s=$month} </option>
{/foreach}
</select>
</div>
<div class="col-xs-4">
<select id="years" name="years" class="form-control">
<option value="">-</option>
{foreach from=$years item=year}
<option value="{$year}" {if ($sl_year == $year)} selected="selected"{/if}>{$year}  </option>
{/foreach}
</select>
</div>
</div>
</div>
{if isset($newsletter) && $newsletter}
<div class="checkbox">
<label for="newsletter">
<input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) && $smarty.post.newsletter == '1'}checked="checked"{/if} />
{l s='Sign up for our newsletter!'}</label>
</div>
<div class="checkbox">
<label for="optin">
<input type="checkbox" name="optin" id="optin" value="1" {if isset($smarty.post.optin) && $smarty.post.optin == '1'}checked="checked"{/if} />
{l s='Receive special offers from our partners!'}</label>
</div>
{/if}
<h3 class="page-heading bottom-indent top-indent">{l s='Delivery address'}</h3>
{foreach from=$dlv_all_fields item=field_name}
{if $field_name eq "company" && $b2b_enable}
<div class="form-group">
<label for="company">{l s='Company'}</label>
<input type="text" class="form-control" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}" />
</div>
{elseif $field_name eq "vat_number"}
<div id="vat_number" style="display:none;">
<div class="form-group">
<label for="vat-number">{l s='VAT number'}</label>
<input id="vat-number" type="text" class="form-control" name="vat_number" value="{if isset($smarty.post.vat_number)}{$smarty.post.vat_number}{/if}" />
</div>
</div>
{elseif $field_name eq "dni"}
{assign var='dniExist' value=true}
<div class="required dni form-group">
<label for="dni">{l s='Identification number'} <sup>*</sup></label>
<input type="text" name="dni" id="dni" value="{if isset($smarty.post.dni)}{$smarty.post.dni}{/if}" />
<span class="form_info">{l s='DNI / NIF / NIE'}</span>
</div>
{elseif $field_name eq "address1"}
<div class="required form-group">
<label for="address1">{l s='Address'} <sup>*</sup></label>
<input type="text" class="form-control" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" />
</div>
{elseif $field_name eq "address2"}
<div class="form-group is_customer_param">
<label for="address2">{l s='Address (Line 2)'} <sup>*</sup></label>
<input type="text" class="form-control" name="address2" id="address2" value="{if isset($smarty.post.address2)}{$smarty.post.address2}{/if}" />
</div>
{elseif $field_name eq "postcode"}
{assign var='postCodeExist' value=true}
<div class="required postcode form-group">
<label for="postcode">{l s='Zip/Postal Code'} <sup>*</sup></label>
<input type="text" class="form-control" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onblur="$('#postcode').val($('#postcode').val().toUpperCase());" />
</div>
{elseif $field_name eq "city"}
<div class="required form-group">
<label for="city">{l s='City'} <sup>*</sup></label>
<input type="text" class="form-control" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}" />
</div>
<!-- if customer hasn't update his layout address, country has to be verified but it's deprecated -->
{elseif $field_name eq "Country:name" || $field_name eq "country"}
<div class="required select form-group">
<label for="id_country">{l s='Country'} <sup>*</sup></label>
<select name="id_country" id="id_country" class="form-control">
{foreach from=$countries item=v}
<option value="{$v.id_country}"{if (isset($smarty.post.id_country) AND  $smarty.post.id_country == $v.id_country) OR (!isset($smarty.post.id_country) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name}</option>
{/foreach}
</select>
</div>
{elseif $field_name eq "State:name"}
{assign var='stateExist' value=true}
<div class="required id_state select form-group">
<label for="id_state">{l s='State'} <sup>*</sup></label>
<select name="id_state" id="id_state" class="form-control">
<option value="">-</option>
</select>
</div>
{/if}
{/foreach}
{if $stateExist eq false}
<div class="required id_state select unvisible form-group">
<label for="id_state">{l s='State'} <sup>*</sup></label>
<select name="id_state" id="id_state" class="form-control">
<option value="">-</option>
</select>
</div>
{/if}
{if $postCodeExist eq false}
<div class="required postcode unvisible form-group">
<label for="postcode">{l s='Zip/Postal Code'} <sup>*</sup></label>
<input type="text" class="form-control" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onblur="$('#postcode').val($('#postcode').val().toUpperCase());" />
</div>
{/if}
{if $dniExist eq false}
<div class="required form-group dni_invoice">
<label for="dni">{l s='Identification number'} <sup>*</sup></label>
<input type="text" class="text form-control" name="dni_invoice" id="dni_invoice" value="{if isset($guestInformations) && $guestInformations.dni_invoice}{$guestInformations.dni_invoice}{/if}" />
<span class="form_info">{l s='DNI / NIF / NIE'}</span>
</div>
{/if}
<div class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}form-group">
<label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
<input type="text" class="form-control" name="phone_mobile" id="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{/if}" />
</div>
<input type="hidden" name="alias" id="alias" value="{l s='My address'}" />
<input type="hidden" name="is_new_customer" id="is_new_customer" value="0" />
<div class="checkbox">
                <label for="invoice_address">
<input type="checkbox" name="invoice_address" id="invoice_address"{if (isset($smarty.post.invoice_address) && $smarty.post.invoice_address) || (isset($guestInformations) && $guestInformations.invoice_address)} checked="checked"{/if} autocomplete="off"/>
{l s='Please use another address for invoice'}</label>
</div>
<div id="opc_invoice_address"  class="unvisible">
{assign var=stateExist value=false}
{assign var=postCodeExist value=false}
<h3 class="page-subheading top-indent">{l s='Invoice address'}</h3>
{foreach from=$inv_all_fields item=field_name}
{if $field_name eq "company" && $b2b_enable}
<div class="form-group">
<label for="company_invoice">{l s='Company'}</label>
<input type="text" class="text form-control" id="company_invoice" name="company_invoice" value="" />
</div>
{elseif $field_name eq "vat_number"}
<div id="vat_number_block_invoice" class="is_customer_param" style="display:none;">
<div class="form-group">
<label for="vat_number_invoice">{l s='VAT number'}</label>
<input type="text" class="form-control" id="vat_number_invoice" name="vat_number_invoice" value="" />
</div>
</div>
{elseif $field_name eq "dni"}
{assign var=dniExist value=true}
<div class="required form-group dni_invoice">
<label for="dni">{l s='Identification number'} <sup>*</sup></label>
<input type="text" class="text form-control" name="dni_invoice" id="dni_invoice" value="{if isset($guestInformations) && $guestInformations.dni_invoice}{$guestInformations.dni_invoice}{/if}" />
<span class="form_info">{l s='DNI / NIF / NIE'}</span>
</div>
{elseif $field_name eq "firstname"}
<div class="required form-group">
<label for="firstname_invoice">{l s='First name'} <sup>*</sup></label>
<input type="text" class="form-control" id="firstname_invoice" name="firstname_invoice" value="{if isset($guestInformations) && $guestInformations.firstname_invoice}{$guestInformations.firstname_invoice}{/if}" />
</div>
{elseif $field_name eq "lastname"}
<div class="required form-group">
<label for="lastname_invoice">{l s='Last name'} <sup>*</sup></label>
<input type="text" class="form-control" id="lastname_invoice" name="lastname_invoice" value="{if isset($guestInformations) && $guestInformations.lastname_invoice}{$guestInformations.lastname_invoice}{/if}" />
</div>
{elseif $field_name eq "address1"}
<div class="required form-group">
<label for="address1_invoice">{l s='Address'} <sup>*</sup></label>
<input type="text" class="form-control" name="address1_invoice" id="address1_invoice" value="{if isset($guestInformations) && $guestInformations.address1_invoice}{$guestInformations.address1_invoice}{/if}" />
</div>
{elseif $field_name eq "address2"}
<div class="form-group is_customer_param">
<label for="address2_invoice">{l s='Address (Line 2)'}</label>
<input type="text" class="form-control" name="address2_invoice" id="address2_invoice" value="{if isset($guestInformations) && $guestInformations.address2_invoice}{$guestInformations.address2_invoice}{/if}" />
</div>
{elseif $field_name eq "postcode"}
{$postCodeExist = true}
<div class="required postcode_invoice form-group">
<label for="postcode_invoice">{l s='Zip/Postal Code'} <sup>*</sup></label>
<input type="text" class="form-control" name="postcode_invoice" id="postcode_invoice" value="{if isset($guestInformations) && $guestInformations.postcode_invoice}{$guestInformations.postcode_invoice}{/if}" onkeyup="$('#postcode_invoice').val($('#postcode_invoice').val().toUpperCase());" />
</div>
{elseif $field_name eq "city"}
<div class="required form-group">
<label for="city_invoice">{l s='City'} <sup>*</sup></label>
<input type="text" class="form-control" name="city_invoice" id="city_invoice" value="{if isset($guestInformations) && $guestInformations.city_invoice}{$guestInformations.city_invoice}{/if}" />
</div>
{elseif $field_name eq "country" || $field_name eq "Country:name"}
<div class="required form-group">
<label for="id_country_invoice">{l s='Country'} <sup>*</sup></label>
<select name="id_country_invoice" id="id_country_invoice" class="form-control">
<option value="">-</option>
{foreach from=$countries item=v}
<option value="{$v.id_country}"{if (isset($guestInformations) AND $guestInformations.id_country_invoice == $v.id_country) OR (!isset($guestInformations) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name|escape:'html':'UTF-8'}</option>
{/foreach}
</select>
</div>
{elseif $field_name eq "state" || $field_name eq 'State:name'}
{$stateExist = true}
<div class="required id_state_invoice form-group" style="display:none;">
<label for="id_state_invoice">{l s='State'} <sup>*</sup></label>
<select name="id_state_invoice" id="id_state_invoice" class="form-control">
<option value="">-</option>
</select>
</div>
{/if}
{/foreach}
{if !$postCodeExist}
<div class="required postcode_invoice form-group unvisible">
<label for="postcode_invoice">{l s='Zip/Postal Code'} <sup>*</sup></label>
<input type="text" class="form-control" name="postcode_invoice" id="postcode_invoice" value="" onkeyup="$('#postcode').val($('#postcode').val().toUpperCase());" />
</div>
{/if}
{if !$stateExist}
<div class="required id_state_invoice form-group unvisible">
<label for="id_state_invoice">{l s='State'} <sup>*</sup></label>
<select name="id_state_invoice" id="id_state_invoice" class="form-control">
<option value="">-</option>
</select>
</div>
{/if}
<div class="form-group is_customer_param">
<label for="other_invoice">{l s='Additional information'}</label>
<textarea class="form-control" name="other_invoice" id="other_invoice" cols="26" rows="3"></textarea>
</div>
{if isset($one_phone_at_least) && $one_phone_at_least}
<p class="inline-infos required is_customer_param">{l s='You must register at least one phone number.'}</p>
{/if}
<div class="form-group is_customer_param">
<label for="phone_invoice">{l s='Home phone'}</label>
<input type="text" class="form-control" name="phone_invoice" id="phone_invoice" value="{if isset($guestInformations) && $guestInformations.phone_invoice}{$guestInformations.phone_invoice}{/if}" />
</div>
<div class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}form-group">
<label for="phone_mobile_invoice">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
<input type="text" class="form-control" name="phone_mobile_invoice" id="phone_mobile_invoice" value="{if isset($guestInformations) && $guestInformations.phone_mobile_invoice}{$guestInformations.phone_mobile_invoice}{/if}" />
</div>
<input type="hidden" name="alias_invoice" id="alias_invoice" value="{l s='My Invoice address'}" />
</div>
<!-- END Account -->
</div>
{$HOOK_CREATE_ACCOUNT_FORM}
</div>
<p class="cart_navigation required submit clearfix">
<span><sup>*</sup>{l s='Required field'}</span>
<input type="hidden" name="display_guest_checkout" value="1" />
<button type="submit" class="button btn btn-default button-medium" name="submitGuestAccount" id="submitGuestAccount">
<span>
{l s='Proceed to checkout'}
<i class="icon-chevron-right right"></i>
</span>
</button>
</p>
</form>
{/if}
{else}
<!--{if isset($account_error)}
<div class="error">
{if {$account_error|@count} == 1}
<p>{l s='There\'s at least one error'} :</p>
{else}
<p>{l s='There are %s errors' sprintf=[$account_error|@count]} :</p>
{/if}
<ol>
{foreach from=$account_error item=v}
<li>{$v}</li>
{/foreach}
</ol>
</div>
{/if}-->
<form action="{$link->getPageLink('authentication', true)|escape:'html':'UTF-8'}" method="post" id="account-creation_form" class="std box">
{$HOOK_CREATE_ACCOUNT_TOP}
<div class="account_creation">
<h3 class="page-subheading">{l s='Your personal information'}</h3>
<div class="clearfix">
<label>{l s='Title'}</label>
<br />
{foreach from=$genders key=k item=gender}
<div class="radio-inline">
<label for="id_gender{$gender->id}" class="top">
<input type="radio" name="id_gender" id="id_gender{$gender->id}" value="{$gender->id}" {if isset($smarty.post.id_gender) && $smarty.post.id_gender == $gender->id}checked="checked"{/if} />
{$gender->name}
</label>
</div>
{/foreach}
</div>
<div class="required form-group">
<label for="customer_firstname">{l s='First name'} <sup>*</sup></label>
<input onkeyup="$('#firstname').val(this.value);" type="text" class="is_required validate form-control" data-validate="isName" id="customer_firstname" name="customer_firstname" value="{if isset($smarty.post.customer_firstname)}{$smarty.post.customer_firstname}{/if}" />
</div>
<div class="required form-group">
<label for="customer_lastname">{l s='Last name'} <sup>*</sup></label>
<input onkeyup="$('#lastname').val(this.value);" type="text" class="is_required validate form-control" data-validate="isName" id="customer_lastname" name="customer_lastname" value="{if isset($smarty.post.customer_lastname)}{$smarty.post.customer_lastname}{/if}" />
</div>
<div class="required form-group">
<label for="email">{l s='Email'} <sup>*</sup></label>
<input type="text" class="is_required validate form-control" data-validate="isEmail" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email}{/if}" />
</div>
<div class="required password form-group">
<label for="passwd">{l s='Password'} <sup>*</sup></label>
<input type="password" class="is_required validate form-control" data-validate="isPasswd" name="passwd" id="passwd" />
<span class="form_info">{l s='(Five characters minimum)'}</span>
</div> 
<div class="form-group">
<label>{l s='Date of Birth'}</label>
<div class="row">
<div class="col-xs-4">
<select id="days" name="days" class="form-control">
<option value="">-</option>
{foreach from=$days item=day}
<option value="{$day}" {if ($sl_day == $day)} selected="selected"{/if}>{$day}  </option>
{/foreach}
</select>
{*
{l s='January'}
{l s='February'}
{l s='March'}
{l s='April'}
{l s='May'}
{l s='June'}
{l s='July'}
{l s='August'}
{l s='September'}
{l s='October'}
{l s='November'}
{l s='December'}
*}
</div>
<div class="col-xs-4">
<select id="months" name="months" class="form-control">
<option value="">-</option>
{foreach from=$months key=k item=month}
<option value="{$k}" {if ($sl_month == $k)} selected="selected"{/if}>{l s=$month} </option>
{/foreach}
</select>
</div>
<div class="col-xs-4">
<select id="years" name="years" class="form-control">
<option value="">-</option>
{foreach from=$years item=year}
<option value="{$year}" {if ($sl_year == $year)} selected="selected"{/if}>{$year}  </option>
{/foreach}
</select>
</div>
</div>
</div>
{if $newsletter}
<div class="checkbox">
<input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) AND $smarty.post.newsletter == 1} checked="checked"{/if} />
<label for="newsletter">{l s='Sign up for our newsletter!'}</label>
</div>
<div class="checkbox">
<input type="checkbox"name="optin" id="optin" value="1" {if isset($smarty.post.optin) AND $smarty.post.optin == 1} checked="checked"{/if} />
<label for="optin">{l s='Receive special offers from our partners!'}</label>
</div>
{/if}
</div>
{if $b2b_enable}
<div class="account_creation">
<h3 class="page-subheading">{l s='Your company information'}</h3>
<p class="form-group">
<label for="">{l s='Company'}</label>
<input type="text" class="form-control" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}" />
</p>
<p class="form-group">
<label for="siret">{l s='SIRET'}</label>
<input type="text" class="form-control" id="siret" name="siret" value="{if isset($smarty.post.siret)}{$smarty.post.siret}{/if}" />
</p>
<p class="form-group">
<label for="ape">{l s='APE'}</label>
<input type="text" class="form-control" id="ape" name="ape" value="{if isset($smarty.post.ape)}{$smarty.post.ape}{/if}" />
</p>
<p class="form-group">
<label for="website">{l s='Website'}</label>
<input type="text" class="form-control" id="website" name="website" value="{if isset($smarty.post.website)}{$smarty.post.website}{/if}" />
</p>
</div>
{/if}
{if isset($PS_REGISTRATION_PROCESS_TYPE) && $PS_REGISTRATION_PROCESS_TYPE}
<div class="account_creation">
<h3 class="page-subheading">{l s='Your address'}</h3>
{foreach from=$dlv_all_fields item=field_name}
{if $field_name eq "company"}
{if !$b2b_enable}
<p class="form-group">
<label for="company">{l s='Company'}</label>
<input type="text" class="form-control" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}" />
</p>
{/if}
{elseif $field_name eq "vat_number"}
<div id="vat_number" style="display:none;">
<p class="form-group">
<label for="vat_number">{l s='VAT number'}</label>
<input type="text" class="form-control" name="vat_number" value="{if isset($smarty.post.vat_number)}{$smarty.post.vat_number}{/if}" />
</p>
</div>
{elseif $field_name eq "firstname"}
<p class="required form-group">
<label for="firstname">{l s='First name'} <sup>*</sup></label>
<input type="text" class="form-control" id="firstname" name="firstname" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}" />
</p>
{elseif $field_name eq "lastname"}
<p class="required form-group">
<label for="lastname">{l s='Last name'} <sup>*</sup></label>
<input type="text" class="form-control" id="lastname" name="lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}" />
</p>
{elseif $field_name eq "address1"}
<p class="required form-group">
<label for="address1">{l s='Address'} <sup>*</sup></label>
<input type="text" class="form-control" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" />
<span class="inline-infos">{l s='Street address, P.O. Box, Company name, etc.'}</span>
</p>
{elseif $field_name eq "address2"}
<p class="form-group is_customer_param">
<label for="address2">{l s='Address (Line 2)'}</label>
<input type="text" class="form-control" name="address2" id="address2" value="{if isset($smarty.post.address2)}{$smarty.post.address2}{/if}" />
<span class="inline-infos">{l s='Apartment, suite, unit, building, floor, etc...'}</span>
</p>
{elseif $field_name eq "postcode"}
{assign var='postCodeExist' value=true}
<p class="required postcode form-group">
<label for="postcode">{l s='Zip/Postal Code'} <sup>*</sup></label>
<input type="text" class="form-control" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onkeyup="$('#postcode').val($('#postcode').val().toUpperCase());" />
</p>
{elseif $field_name eq "city"}
<p class="required form-group">
<label for="city">{l s='City'} <sup>*</sup></label>
<input type="text" class="form-control" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}" />
</p>
<!-- if customer hasn't update his layout address, country has to be verified but it's deprecated -->
{elseif $field_name eq "Country:name" || $field_name eq "country"}
<p class="required select form-group">
<label for="id_country">{l s='Country'} <sup>*</sup></label>
<select name="id_country" id="id_country" class="form-control">
<option value="">-</option>
{foreach from=$countries item=v}
<option value="{$v.id_country}"{if (isset($smarty.post.id_country) AND $smarty.post.id_country == $v.id_country) OR (!isset($smarty.post.id_country) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name}</option>
{/foreach}
</select>
</p>
{elseif $field_name eq "State:name" || $field_name eq 'state'}
{assign var='stateExist' value=true}
<p class="required id_state select form-group">
<label for="id_state">{l s='State'} <sup>*</sup></label>
<select name="id_state" id="id_state" class="form-control">
<option value="">-</option>
</select>
</p>
{/if}
{/foreach}
{if $postCodeExist eq false}
<p class="required postcode form-group unvisible">
<label for="postcode">{l s='Zip/Postal Code'} <sup>*</sup></label>
<input type="text" class="form-control" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onkeyup="$('#postcode').val($('#postcode').val().toUpperCase());" />
</p>
{/if}
{if $stateExist eq false}
<p class="required id_state select unvisible form-group">
<label for="id_state">{l s='State'} <sup>*</sup></label>
<select name="id_state" id="id_state" class="form-control">
<option value="">-</option>
</select>
</p>
{/if}
<p class="textarea form-group">
<label for="other">{l s='Additional information'}</label>
<textarea class="form-control" name="other" id="other" cols="26" rows="3">{if isset($smarty.post.other)}{$smarty.post.other}{/if}</textarea>
</p>
{if isset($one_phone_at_least) && $one_phone_at_least}
<p class="inline-infos">{l s='You must register at least one phone number.'}</p>
{/if}
<p class="form-group">
<label for="phone">{l s='Home phone'}</label>
<input type="text" class="form-control" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}" />
</p>
<p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}form-group">
<label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
<input type="text" class="form-control" name="phone_mobile" id="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{/if}" />
</p>
<p class="required form-group" id="address_alias">
<label for="alias">{l s='Assign an address alias for future reference.'} <sup>*</sup></label>
<input type="text" class="form-control" name="alias" id="alias" value="{if isset($smarty.post.alias)}{$smarty.post.alias}{else}{l s='My address'}{/if}" />
</p>
</div>
<div class="account_creation dni">
<h3 class="page-subheading">{l s='Tax identification'}</h3>
<p class="required form-group">
<label for="dni">{l s='Identification number'} <sup>*</sup></label>
<input type="text" class="form-control" name="dni" id="dni" value="{if isset($smarty.post.dni)}{$smarty.post.dni}{/if}" />
<span class="form_info">{l s='DNI / NIF / NIE'}</span>
</p>
</div>
{/if}
{$HOOK_CREATE_ACCOUNT_FORM}
<div class="submit clearfix">
<input type="hidden" name="email_create" value="1" />
<input type="hidden" name="is_new_customer" value="1" />
{if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'html':'UTF-8'}" />{/if}
<button type="submit" name="submitAccount" id="submitAccount" class="btn btn-default button button-medium">
<span>{l s='Register'}<i class="icon-chevron-right right"></i></span>
</button>
<p class="pull-right required"><span><sup>*</sup>{l s='Required field'}</span></p>
</div>
</form>
{/if}
{strip}
{if isset($smarty.post.id_state) && $smarty.post.id_state}
{addJsDef idSelectedState=$smarty.post.id_state|intval}
{else if isset($address->id_state) && $address->id_state}
{addJsDef idSelectedState=$address->id_state|intval}
{else}
{addJsDef idSelectedState=false}
{/if}
{if isset($smarty.post.id_country) && $smarty.post.id_country}
{addJsDef idSelectedCountry=$smarty.post.id_country|intval}
{else if isset($address->id_country) && $address->id_country}
{addJsDef idSelectedCountry=$address->id_country|intval}
{else}
{addJsDef idSelectedCountry=false}
{/if}
{if isset($countries)}
{addJsDef countries=$countries}
{/if}
{if isset($vatnumber_ajax_call) && $vatnumber_ajax_call}
{addJsDef vatnumber_ajax_call=$vatnumber_ajax_call}
{/if}
{if isset($email_create) && $email_create}
{addJsDef email_create=$email_create|boolval}
{else}
{addJsDef email_create=false}
{/if}
{/strip}
Edited by Jacek Es (see edit history)

Share this post


Link to post
Share on other sites

yea file is different, but some parts are the same

exactly as a part with <input name="back">

{if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'html':'UTF-8'}" />{/if}

Share this post


Link to post
Share on other sites

Thanks. I tried this one before. This bit appears in authentication.tpl 3 times (ln 64, ln 90 and 646). I replaced all 3 with what you suggested earlier on and it doesn't do the job. 

 

Btw., This line is slightly different in 1.6. That's why I couldn't find it before. Below is comparison.

 

{if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}

{if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'html':'UTF-8'}" />{/if}

 

Any idea what could go wrong?

Share this post


Link to post
Share on other sites

let's clarify,

what you're trying to achieve

that's the most important question in this case

Share this post


Link to post
Share on other sites

Sure ;-)

 

When I add product to the cart and proceed to the checkout I am asked to sign in (step 2 - sign in). After signing in it redirects to "My account". What I am trying to achieve is that after signing in I continue with checkout (step 3 - address)

Share this post


Link to post
Share on other sites

Prestashop takes you to the my-account page after login by design. Look at my solution in post #24. My guess is something similar for 1.6.0 exists. Just look for "my-account" in the code.

Share this post


Link to post
Share on other sites

Thanks Centio. The code is different in PrestaShop 1.6. Nothing similar to what you posted exists in the authentication.tpl. I posted the entire code at #27. Also, redirecting always to home page isn't ideal as it would break the flow of checkout process (when you have to login at step 2). The preferred option is to redirect to previous page as suggested in this post. The problem is that it doesn't want to work in PrestaShop 1.6.0.8

Share this post


Link to post
Share on other sites

I will have a look in my 1.6.0 development server. 

 

I got it to work for 1.5.6.0, just the way you want it. As far as I can tell. Login should redirect you to the place you were before. Would love to hear from Presta Devs why they choose otherwise

  • Like 1

Share this post


Link to post
Share on other sites

Thank you again, Vekia and Centio, this is a very useful and constructive topic, saved my day. Centio`s solution works great, although it took me some time to guess which is the "first step" in login process. Finally I put the http://www.mysite.com/login?back=my-account link for the if condition, and it works good for customers that already have an account, but those newly registered will still see their new my-account page after registration. Can I set more than one condition in this line below? separated with an "and"?

{if $smarty.server.HTTP_REFERER == "http://www.salus-tehnomed.ro/login?back=my-account"}

Share this post


Link to post
Share on other sites

Hi Vekia,

 

I'm using PS 1.6.1.1.

I want to go back to step 1 after identification so I modified authentication.tpl with your script. 

I can see the right url in navigator : http://www.domain.fr/connexion?back=http%3A%2F%2Fwww.domain.fr%2Fcommande%3Fstep%3D1 but when I enter email and password i'm still redirected to homepage.

In fact I'm always redirected to homepage, with or with out your code (by default back=my-account)...

 

Any reason for this ? Thanks.

 

Jérôme

Share this post


Link to post
Share on other sites

Hello vekia,

 

Situation :  After successful registration, customer is returned to login page.
This is fine if new customers are immediately allowed to buy with no validation from admin.

My case: wholesale store where customers have to validated by admin before they can buy. So I would like to send the customer to a cms page (success) after they've registered. There we can explain more in detail why they can't immediately login but have to wait to be validated before seeing product prices.

What file might I edit to accomplish this?

Thanks in advance.

Share this post


Link to post
Share on other sites

Hi ! I would like to "remove" the my-account.tpl page. So every time a user goes to this page, I want to redirect directly to identity.tpl. So everytime a user login, redirect him to identity.tpl. Is that possible ?

 

Thank you in advance :) !

Share this post


Link to post
Share on other sites

I'm facing the same issue.

 

I found a tutorial to redirect customer after login  during checkout but I can't make it work. 

 

What I had, by default is redirection to home page when I added the script  ,after being logged it goes to my account. What I want to do is to redirect user to the first step(order).what do I need to change.

 

here is the link : 

 

https://www.arnaud-merigeau.fr/tuto-prestashop-rediriger-apres-login-vers-etape-suivante/

 

Thanks for helping me and I'm sorry for my english

Share this post


Link to post
Share on other sites

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More