Jump to content

[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.

Link to comment
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!

Link to comment
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 [email protected] 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 <[email protected]>
*  @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}

Link to comment
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
Link to comment
Share on other sites

  • 1 month later...
  • 4 weeks later...
  • 2 weeks later...

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
Link to comment
Share on other sites

  • 2 months later...
  • 1 month later...

@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

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

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'));

Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...

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 [email protected] 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 <[email protected]>
*  @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)
Link to comment
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?

Link to comment
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)

Link to comment
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

Link to comment
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
Link to comment
Share on other sites

  • 1 month later...

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"}
Link to comment
Share on other sites

  • 3 months later...
  • 7 months later...

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

Link to comment
Share on other sites

  • 7 months later...

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.

Link to comment
Share on other sites

  • 1 month later...
  • 1 year later...

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

Link to comment
Share on other sites

×
×
  • Create New...