// BugFix in checkout with multishipping on step address
This commit is contained in:
@@ -60,7 +60,7 @@ function updateAddressesDisplay(first_view)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$('#address_invoice_form:hidden').show('fast');
|
$('#address_invoice_form:hidden').show('fast');
|
||||||
if ($('select#id_address_invoice').val())
|
if ($('#id_address_invoice').val())
|
||||||
updateAddressDisplay('invoice');
|
updateAddressDisplay('invoice');
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -82,20 +82,23 @@ function updateAddressDisplay(addressType)
|
|||||||
if (formatedAddressFieldsValuesList.length <= 0)
|
if (formatedAddressFieldsValuesList.length <= 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var idAddress = $('select#id_address_' + addressType + '').val();
|
var idAddress = $('#id_address_' + addressType + '').val();
|
||||||
buildAddressBlock(idAddress, addressType, $('#address_'+ addressType));
|
buildAddressBlock(idAddress, addressType, $('#address_'+ addressType));
|
||||||
|
|
||||||
// change update link
|
// change update link
|
||||||
var link = $('ul#address_' + addressType + ' li.address_update a').attr('href');
|
var link = $('ul#address_' + addressType + ' li.address_update a').attr('href');
|
||||||
var expression = /id_address=\d+/;
|
var expression = /id_address=\d+/;
|
||||||
link = link.replace(expression, 'id_address='+idAddress);
|
if (link)
|
||||||
$('ul#address_' + addressType + ' li.address_update a').attr('href', link);
|
{
|
||||||
|
link = link.replace(expression, 'id_address='+idAddress);
|
||||||
|
$('ul#address_' + addressType + ' li.address_update a').attr('href', link);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateAddresses()
|
function updateAddresses()
|
||||||
{
|
{
|
||||||
var idAddress_delivery = $('select#id_address_delivery').val();
|
var idAddress_delivery = $('#id_address_delivery').val();
|
||||||
var idAddress_invoice = $('input[type=checkbox]#addressesAreEquals:checked').length == 1 ? idAddress_delivery : $('select#id_address_invoice').val();
|
var idAddress_invoice = $('input[type=checkbox]#addressesAreEquals:checked').length == 1 ? idAddress_delivery : $('#id_address_invoice').val();
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
|
|||||||
@@ -23,6 +23,13 @@
|
|||||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*}
|
*}
|
||||||
|
|
||||||
|
{if $opc}
|
||||||
|
{assign var="back_order_page" value="order-opc.php"}
|
||||||
|
{else}
|
||||||
|
{assign var="back_order_page" value="order.php"}
|
||||||
|
{/if}
|
||||||
|
|
||||||
{* Will be deleted for 1.5 version and more *}
|
{* Will be deleted for 1.5 version and more *}
|
||||||
{if !isset($formatedAddressFieldsValuesList)}
|
{if !isset($formatedAddressFieldsValuesList)}
|
||||||
{$ignoreList.0 = "id_address"}
|
{$ignoreList.0 = "id_address"}
|
||||||
@@ -68,32 +75,32 @@
|
|||||||
|
|
||||||
{foreach from=$formatedAddressFieldsValuesList key=id_address item=type}
|
{foreach from=$formatedAddressFieldsValuesList key=id_address item=type}
|
||||||
formatedAddressFieldsValuesList[{$id_address}] =
|
formatedAddressFieldsValuesList[{$id_address}] =
|
||||||
{ldelim}
|
{
|
||||||
'ordered_fields':[
|
'ordered_fields':[
|
||||||
{foreach from=$type.ordered_fields key=num_field item=field_name name=inv_loop}
|
{foreach from=$type.ordered_fields key=num_field item=field_name name=inv_loop}
|
||||||
{if !$smarty.foreach.inv_loop.first},{/if}"{$field_name}"
|
{if !$smarty.foreach.inv_loop.first},{/if}"{$field_name}"
|
||||||
{/foreach}
|
{/foreach}
|
||||||
],
|
],
|
||||||
'formated_fields_values':{ldelim}
|
'formated_fields_values':{
|
||||||
{foreach from=$type.formated_fields_values key=pattern_name item=field_name name=inv_loop}
|
{foreach from=$type.formated_fields_values key=pattern_name item=field_name name=inv_loop}
|
||||||
{if !$smarty.foreach.inv_loop.first},{/if}"{$pattern_name}":"{$field_name}"
|
{if !$smarty.foreach.inv_loop.first},{/if}"{$pattern_name}":"{$field_name}"
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{rdelim}
|
}
|
||||||
{rdelim}
|
}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
|
||||||
function getAddressesTitles()
|
function getAddressesTitles()
|
||||||
{ldelim}
|
{
|
||||||
return {ldelim}
|
return {
|
||||||
'invoice': "{l s='Your billing address'}",
|
'invoice': "{l s='Your billing address'}",
|
||||||
'delivery': "{l s='Your delivery address'}"
|
'delivery': "{l s='Your delivery address'}"
|
||||||
{rdelim};
|
};
|
||||||
|
|
||||||
{rdelim}
|
}
|
||||||
|
|
||||||
|
|
||||||
function buildAddressBlock(id_address, address_type, dest_comp)
|
function buildAddressBlock(id_address, address_type, dest_comp)
|
||||||
{ldelim}
|
{
|
||||||
var adr_titles_vals = getAddressesTitles();
|
var adr_titles_vals = getAddressesTitles();
|
||||||
var li_content = formatedAddressFieldsValuesList[id_address]['formated_fields_values'];
|
var li_content = formatedAddressFieldsValuesList[id_address]['formated_fields_values'];
|
||||||
var ordered_fields_name = ['title'];
|
var ordered_fields_name = ['title'];
|
||||||
@@ -107,26 +114,26 @@
|
|||||||
li_content['update'] = '<a href="{$link->getPageLink('address', true, NULL, "id_address")}'+id_address+'&back=order?step=1{if $back}&mod={$back}{/if}" title="{l s='Update'}">{l s='Update'}</a>';
|
li_content['update'] = '<a href="{$link->getPageLink('address', true, NULL, "id_address")}'+id_address+'&back=order?step=1{if $back}&mod={$back}{/if}" title="{l s='Update'}">{l s='Update'}</a>';
|
||||||
|
|
||||||
appendAddressList(dest_comp, li_content, ordered_fields_name);
|
appendAddressList(dest_comp, li_content, ordered_fields_name);
|
||||||
{rdelim}
|
}
|
||||||
|
|
||||||
function appendAddressList(dest_comp, values, fields_name)
|
function appendAddressList(dest_comp, values, fields_name)
|
||||||
{ldelim}
|
{
|
||||||
for (var item in fields_name)
|
for (var item in fields_name)
|
||||||
{ldelim}
|
{
|
||||||
var name = fields_name[item];
|
var name = fields_name[item];
|
||||||
var value = getFieldValue(name, values);
|
var value = getFieldValue(name, values);
|
||||||
if (value != "")
|
if (value != "")
|
||||||
{ldelim}
|
{
|
||||||
var new_li = document.createElement('li');
|
var new_li = document.createElement('li');
|
||||||
new_li.className = 'address_'+ name;
|
new_li.className = 'address_'+ name;
|
||||||
new_li.innerHTML = getFieldValue(name, values);
|
new_li.innerHTML = getFieldValue(name, values);
|
||||||
dest_comp.append(new_li);
|
dest_comp.append(new_li);
|
||||||
{rdelim}
|
}
|
||||||
{rdelim}
|
}
|
||||||
{rdelim}
|
}
|
||||||
|
|
||||||
function getFieldValue(field_name, values)
|
function getFieldValue(field_name, values)
|
||||||
{ldelim}
|
{
|
||||||
var reg=new RegExp("[ ]+", "g");
|
var reg=new RegExp("[ ]+", "g");
|
||||||
|
|
||||||
var items = field_name.split(reg);
|
var items = field_name.split(reg);
|
||||||
@@ -135,7 +142,7 @@
|
|||||||
for (var field_item in items)
|
for (var field_item in items)
|
||||||
vals.push(values[items[field_item]]);
|
vals.push(values[items[field_item]]);
|
||||||
return vals.join(" ");
|
return vals.join(" ");
|
||||||
{rdelim}
|
}
|
||||||
|
|
||||||
//]]>
|
//]]>
|
||||||
</script>
|
</script>
|
||||||
@@ -145,7 +152,7 @@
|
|||||||
{include file="$tpl_dir./breadcrumb.tpl"}
|
{include file="$tpl_dir./breadcrumb.tpl"}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if !$opc}<h1>{l s='Addresses'}</h1>{else}<h2>1. {l s='Addresses'}</h2>{/if}
|
{if !$opc}<h1>{l s='Addresses'}</h1>{else}<h2><span>1</span> {l s='Addresses'}</h2>{/if}
|
||||||
|
|
||||||
{if !$opc}
|
{if !$opc}
|
||||||
{assign var='current_step' value='address'}
|
{assign var='current_step' value='address'}
|
||||||
@@ -159,40 +166,31 @@
|
|||||||
<div id="opc_account" class="opc-main-block">
|
<div id="opc_account" class="opc-main-block">
|
||||||
<div id="opc_account-overlay" class="opc-overlay" style="display: none;"></div>
|
<div id="opc_account-overlay" class="opc-overlay" style="display: none;"></div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<div class="addresses">
|
<div class="addresses">
|
||||||
<input type="hidden" name="id_address_delivery" id="id_address_delivery" value="{$cart->id_address_delivery}" />
|
<input type="hidden" name="id_address_delivery" id="id_address_delivery" value="{$cart->id_address_delivery}" onchange="updateAddressesDisplay();{if $opc}updateAddressSelection();{/if}" />
|
||||||
<p id="address_invoice_form" class="select" {if $cart->id_address_invoice == $cart->id_address_delivery}style="display: none;"{/if}>
|
<p id="address_invoice_form" class="select" {if $cart->id_address_invoice == $cart->id_address_delivery}style="display: none;"{/if}>
|
||||||
|
|
||||||
{if $addresses|@count > 1}
|
{if $addresses|@count >= 1}
|
||||||
<label for="id_address_invoice" class="strong">{l s='Choose a billing address:'}</label>
|
<label for="id_address_invoice" class="strong">{l s='Choose a billing address:'}</label>
|
||||||
<select name="id_address_invoice" id="id_address_invoice" class="address_select" onchange="updateAddressesDisplay();{if $opc}updateAddressSelection();{/if}">
|
<select name="id_address_invoice" id="id_address_invoice" class="address_select" onchange="updateAddressesDisplay();{if $opc}updateAddressSelection();{/if}">
|
||||||
{section loop=$addresses step=-1 name=address}
|
{section loop=$addresses step=-1 name=address}
|
||||||
<option value="{$addresses[address].id_address|intval}" {if $addresses[address].id_address == $cart->id_address_invoice && $cart->id_address_delivery != $cart->id_address_invoice}selected="selected"{/if}>{$addresses[address].alias|escape:'htmlall':'UTF-8'}</option>
|
<option value="{$addresses[address].id_address|intval}" {if $addresses[address].id_address == $cart->id_address_invoice && $cart->id_address_delivery != $cart->id_address_invoice}selected="selected"{/if}>{$addresses[address].alias|escape:'htmlall':'UTF-8'}</option>
|
||||||
{/section}
|
{/section}
|
||||||
</select>
|
</select>
|
||||||
{else}
|
{else}
|
||||||
{if $back}
|
<a href="{$link->getPageLink('address', true, NULL, "back={$back_order_page}?step=1{if $back}&mod={$back}{/if}")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
|
||||||
<a style="margin-left: 221px;" href="{$link->getPageLink('address', true, NULL, "back=order&step=1&select_address=1&mod=$back")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
|
{/if}
|
||||||
{else}
|
|
||||||
<a style="margin-left: 221px;" href="{$link->getPageLink('address', true, NULL, "back=order&step=1&select_address=1")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
|
|
||||||
{/if}
|
|
||||||
{/if}
|
|
||||||
</p>
|
</p>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
<ul class="address item {if $cart->isVirtualCart()}full_width{/if}" id="address_invoice">
|
<ul class="address alternate_item {if $cart->isVirtualCart()}full_width{/if}" id="address_invoice">
|
||||||
</ul>
|
</ul>
|
||||||
<br class="clear" />
|
<br class="clear" />
|
||||||
<p class="address_add submit">
|
<p class="address_add submit">
|
||||||
{if $back}
|
<a href="{$link->getPageLink('address', true, NULL, "back={$back_order_page}?step=1{if $back}&mod={$back|urlencode}{/if}")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
|
||||||
<a href="{$link->getPageLink('address', true, NULL, "back=order%26step=1%26mod={$back}%26multi-shipping=1")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
|
|
||||||
{else}
|
|
||||||
<a href="{$link->getPageLink('address', true, NULL, "back=order%26step=1%26multi-shipping=1")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
|
|
||||||
{/if}
|
|
||||||
</p>
|
</p>
|
||||||
{if !$opc}
|
{if !$opc}
|
||||||
<div id="ordermsg">
|
<div id="ordermsg" class="clearfix">
|
||||||
<p>{l s='If you would like to add a comment about your order, please write it below.'}</p>
|
<p class="txt">{l s='If you would like to add a comment about your order, please write it below.'}</p>
|
||||||
<p class="textarea"><textarea cols="60" rows="3" name="message">{if isset($oldMessage)}{$oldMessage}{/if}</textarea></p>
|
<p class="textarea"><textarea cols="60" rows="3" name="message">{if isset($oldMessage)}{$oldMessage}{/if}</textarea></p>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
Reference in New Issue
Block a user