Index: admin/user_profiles.php
@@ -275,10 +275,16 @@ foreach ($address_fields as $k => $v) {
}
}
$smarty->assign('address_fields', $address_fields);
/**
+ * Additional address fields
+ */
+$additional_address_fields = func_get_additional_fields('', '', 'B');
+$smarty->assign('additional_address_fields', $additional_address_fields);
+
+/**
* Additional fields
*/
$additional_fields = func_get_additional_fields();
$smarty->assign('additional_fields', $additional_fields);
@@ -304,11 +310,12 @@ if(empty($active_modules['Simple_Mode'])
* Service arrays
*/
// Sections
$sections = array(
'A' => func_get_langvar_by_name('lbl_additional_information'),
- 'P' => func_get_langvar_by_name('lbl_personal_information')
+ 'P' => func_get_langvar_by_name('lbl_personal_information'),
+ 'B' => func_get_langvar_by_name('lbl_address_book')
);
// Field types
$types = array(
'T' => 'Text',
Index: include/address_book.php
@@ -62,13 +62,36 @@ if ($REQUEST_METHOD == 'POST') {
if (
$current_area == 'C'
&& $main == 'checkout'
) {
// Update request from customer area
- if (!$is_anonymous)
+ if (!$is_anonymous) {
$address_book = func_customer_save_address_book_indb($address_book, @$ship2diff, @$existing_address, @$new_address);
+ // Add additional address values
+ if (isset($address_book['S']['id']) && isset($additional_values['address']['S'])) {
+ func_save_additional_address_fields($logged_userid, $address_book['S']['id'], $additional_values['address']['S']);
+ }
+ if (isset($address_book['B']['id']) && isset($additional_values['address']['B'])) {
+ func_save_additional_address_fields($logged_userid, $address_book['B']['id'], $additional_values['address']['B']);
+ }
+
+ // Update additional address values
+ if (isset($address_book['S']['id']) && isset($additional_values['address'][@$new_address['S']])) {
+ func_save_additional_address_fields($logged_userid, $address_book['S']['id'], $additional_values['address'][$new_address['S']]);
+ }
+ elseif (isset($address_book['S']['id']) && isset($additional_values['address'][@$existing_address['S']])) {
+ func_save_additional_address_fields($logged_userid, $address_book['S']['id'], $additional_values['address'][$existing_address['S']]);
+ }
+ if (isset($address_book['B']['id']) && isset($additional_values['address'][@$new_address['B']])) {
+ func_save_additional_address_fields($logged_userid, $address_book['B']['id'], $additional_values['address'][$new_address['B']]);
+ }
+ elseif (isset($address_book['B']['id']) && isset($additional_values['address'][@$existing_address['B']])) {
+ func_save_additional_address_fields($logged_userid, $address_book['B']['id'], $additional_values['address'][$existing_address['B']]);
+ }
+ }
+
$cart = func_customer_save_address_book_insession($cart, $address_book, @$ship2diff);
} elseif ($current_area != 'C') {
// Update request from admin area
if (!empty($delete_address)) {
@@ -78,9 +101,20 @@ if ($REQUEST_METHOD == 'POST') {
// Update address_book for customer logged_userid
list($address_book, $new_addressid) = func_admin_save_address_book($address_book, $logged_userid);
// Mark default address(es)
func_admin_mark_default_addresses($logged_userid, $new_addressid);
+ // Update additional address value
+ foreach ($address_book as $__addressid => $__address_data) {
+ if (isset($additional_values['address'][$__addressid]) && $__addressid != 0) {
+ func_save_additional_address_fields($logged_userid, $__addressid, $additional_values['address'][$__addressid]);
+ }
+ }
+
+ // Add additional address values
+ if (isset($additional_values['address'][0]) && $new_addressid) {
+ func_save_additional_address_fields($logged_userid, $new_addressid, $additional_values['address'][0]);
+ }
}
}
?>
Index: include/func/func.user.php
@@ -496,11 +496,12 @@ function func_userinfo($user, $usertype
if (isset($userinfo['email']))
$email = $userinfo['email'];
// Get additional fields
- $additional_fields = func_get_additional_fields($profile_area, $user);
+ $additional_fields = func_get_additional_fields($profile_area, $user, '', 0);
+
$userinfo['additional_fields'] = $additional_fields;
// Get default fields
$default_fields = func_get_default_fields($profile_area, 'user_profile', true, true);
$userinfo['default_fields'] = $default_fields;
@@ -590,10 +591,21 @@ function func_userinfo($user, $usertype
) {
// Adjust addresses for logged in customer ($cart can be changed)
list($cart, $userinfo) = func_adjust_customer_address($cart, $userinfo);
}
+ if (isset($userinfo['address']['B']['id'])) {
+ $userinfo['additional_fields']['address']['B'] = func_get_additional_fields($userinfo['usertype'], $user, 'B', $userinfo['address']['B']['id']);
+ } else {
+ $userinfo['additional_fields']['address']['B'] = func_get_additional_fields($userinfo['usertype'], $user, 'B', 'B');
+ }
+ if (isset($userinfo['address']['S']['id'])) {
+ $userinfo['additional_fields']['address']['S'] = func_get_additional_fields($userinfo['usertype'], $user, 'B', $userinfo['address']['S']['id']);
+ } else {
+ $userinfo['additional_fields']['address']['S'] = func_get_additional_fields($userinfo['usertype'], $user, 'B', 'S');
+ }
+
// Add these fields for backward compatibility with 43x code like payment gateways
$userinfo['phone'] = empty($userinfo['b_phone']) ? @$userinfo['s_phone'] : $userinfo['b_phone'];
$userinfo['fax'] = empty($userinfo['b_fax']) ? @$userinfo['s_fax'] : $userinfo['b_fax'];
if (empty($userinfo['language']) && (!empty($shop_language))) {
@@ -1064,30 +1076,38 @@ function func_get_profile_areas($profile
}
/**
* Get additional register fields settings
*/
-function func_get_additional_fields($area = '', $user = '')
+function func_get_additional_fields($area = '', $user = '', $section = null, $address = null)
{
global $sql_tbl, $shop_language, $is_anonymous;
$_anonymous_userinfo = func_get_anonymous_userinfo();
+ $section_condition = empty($section) ? "$sql_tbl[register_fields].section <> ''" : "$sql_tbl[register_fields].section = '$section'";
+ $address_condition = empty($address) ? "$sql_tbl[register_field_values].addressid = '0'" : "$sql_tbl[register_field_values].addressid = '$address'";
+
+ $_address_exists = func_query_first_cell("SELECT COUNT(id) FROM $sql_tbl[address_book] WHERE userid='$user' AND id='$address'") == 0 ? false : true;
+ $_value_exists = func_query_first_cell("SELECT COUNT(fieldid) FROM $sql_tbl[register_field_values] WHERE userid='$user' AND addressid='$address'") == 0 ? false : true;
+
+ $join_type = (!$_address_exists || !$_value_exists) ? "LEFT JOIN" : "INNER JOIN";
+
if ($area) {
if (!is_array($area))
$area = array($area);
$avail_condition = "($sql_tbl[register_fields].avail LIKE '%" . implode("%' OR $sql_tbl[register_fields].avail LIKE '%", $area) . "%')";
$required_condition = "($sql_tbl[register_fields].required LIKE '%" . implode("%' OR $sql_tbl[register_fields].required LIKE '%", $area) . "%')";
- $fields = func_query("SELECT $sql_tbl[register_fields].*, IF($avail_condition, 'Y', '') as avail, IF($required_condition, 'Y', '') as required, $sql_tbl[register_field_values].value FROM $sql_tbl[register_fields] LEFT JOIN $sql_tbl[register_field_values] ON $sql_tbl[register_fields].fieldid = $sql_tbl[register_field_values].fieldid AND $sql_tbl[register_field_values].userid = '$user' ORDER BY $sql_tbl[register_fields].section, $sql_tbl[register_fields].orderby");
+ $fields = func_query("SELECT $sql_tbl[register_fields].*, IF($avail_condition, 'Y', '') as avail, IF($required_condition, 'Y', '') as required, $sql_tbl[register_field_values].value, $sql_tbl[register_field_values].addressid FROM $sql_tbl[register_fields] $join_type $sql_tbl[register_field_values] ON $sql_tbl[register_fields].fieldid = $sql_tbl[register_field_values].fieldid AND $sql_tbl[register_field_values].userid = '$user' AND $address_condition WHERE $section_condition ORDER BY $sql_tbl[register_fields].section, $sql_tbl[register_fields].orderby");
} else {
- $fields = func_query("SELECT * FROM $sql_tbl[register_fields] ORDER BY section, orderby");
+ $fields = func_query("SELECT * FROM $sql_tbl[register_fields] WHERE $section_condition ORDER BY section, orderby");
}
if ($fields) {
@@ -1098,11 +1118,18 @@ function func_get_additional_fields($are
&& $area
&& isset($_anonymous_userinfo['additional_values'][$v['fieldid']])
) {
// Anonymous profile
$fields[$k]['value'] = stripslashes($_anonymous_userinfo['additional_values'][$v['fieldid']]);
- }
+ }
+
+ if (
+ ($address == 'B' || $address == 'S')
+ && isset($_anonymous_userinfo['additional_values']['address'][$address][$v['fieldid']])
+ ) {
+ $fields[$k]['value'] = $_anonymous_userinfo['additional_values']['address'][$address][$v['fieldid']];
+ }
$fields[$k]['title'] = func_get_languages_alt("lbl_register_field_" . $v['fieldid'], $shop_language);
if (!$area) {
@@ -1318,18 +1345,41 @@ function func_check_required_fields($use
foreach ($additional_fields as $k => $v) {
if (
$v['required'] == "Y"
&& empty($userinfo['additional_fields'][$k]["value"])
+ && $v['section'] != 'B'
) {
return false;
}
}
+ foreach (@$userinfo['additional_fields']['address']['B'] as $k => $v) {
+ if (
+ @$v['required']['C'] == "Y"
+ && empty($v['value'])
+ ) {
+
+ return false;
+
+ }
+ }
+
+ foreach (@$userinfo['additional_fields']['address']['S'] as $k => $v) {
+ if (
+ @$v['required']['C'] == "Y"
+ && empty($v['value'])
+ ) {
+
+ return false;
+
+ }
+ }
+
}
// Do not take required county fields into account if the county feature is disabled bt:89518
if ($config['General']['use_counties'] != 'Y') {
@@ -2045,10 +2095,90 @@ function func_save_address($userid = 0,
return $data;
}
/**
+ * Check address book additional field entries
+ *
+ * @param mixed $data Posted data
+ * @param mixed $fields_area Fields area
+ *
+ * @return array
+ * @see ____func_see____
+ */
+function func_check_additional_address_fields($data, $fields_area)
+{
+ if (empty($data)) {
+ return false;
+ }
+
+ $result = array('status' => true, 'errors' => array());
+
+ $additional_address_fields = func_get_additional_fields($fields_area, null, 'B');
+
+ foreach($additional_address_fields as $field) {
+ if (
+ $field['avail'] == 'Y'
+ && $field['required'] == 'Y'
+ && (
+ !isset($data[$field['fieldid']])
+ || empty($data[$field['fieldid']])
+ )
+ ) {
+ $result['status'] = false;
+ $result['errors'][] = func_reg_error(14);
+
+ return $result;
+ }
+ }
+
+ return $result;
+}
+
+/**
+ * Save additional address fields
+ *
+ * @param int $userid User ID
+ * @param int $addressid Address ID
+ * @param array $data
+ *
+ * @return mixed
+ * @see ____func_see____
+ */
+function func_save_additional_address_fields($userid, $addressid, $data=array()) {
+
+ if (empty($data) || !is_array($data)) {
+ return false;
+ }
+
+ if (
+ abs(intval($userid)) != $userid
+ || $userid <= 0
+ ) {
+ return false;
+ }
+
+ $saved_data = array();
+
+ foreach ($data as $key => $value) {
+ $saved_data[] = array (
+ 'userid' => $userid,
+ 'fieldid' => $key,
+ 'value' => $value,
+ 'addressid' => $addressid
+ );
+ }
+
+ // Perform add/update
+ foreach ($saved_data as $key => $value) {
+ func_array2insert('register_field_values', $value, true);
+ }
+
+ return $saved_data;
+}
+
+/**
* Delete address entry
*
* @param int $addressid Address ID
*
* @return bool
@@ -2062,11 +2192,14 @@ function func_delete_address($addressid
return false;
}
- return db_query("DELETE FROM $sql_tbl[address_book] WHERE id='$addressid'");
+ $result1 = db_query("DELETE FROM $sql_tbl[register_field_values] WHERE addressid='$addressid'");
+ $result2 = db_query("DELETE FROM $sql_tbl[address_book] WHERE id='$addressid'");
+
+ return $result1 && $result2;
}
/**
* Mark address default
*
@@ -3416,10 +3549,36 @@ function func_is_adresses_different($b_a
return $is_different;
}
/**
+ * Compare b_address additional info with s_address additional info on checkout pages
+ * return false if is equal
+ * return true if is different
+ */
+function func_is_additional_address_info_different($b_address, $s_address, $fields_area = 'H') {
+
+ if (
+ empty($s_address)
+ || count($b_address) != count($s_address)
+ ) {
+ return true;
+ }
+
+ foreach($b_address as $key => $field) {
+ if (
+ $field['fieldid'] == $s_address[$key]['fieldid']
+ && $field['value'] != $s_address[$key]['value']
+ ) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+/**
* Setter for $cart['used_s(b)_address'] global session var.
* Setter for $l_cart['used_s(b)_address'] local var
* Use only this function to change the vars
*/
function func_set_cart_address($l_cart, $type, $data, $run_save = '')
Index: include/register.php
@@ -174,10 +174,21 @@ if (
$additional_fields = func_get_additional_fields($fields_area, $logged_userid);
$default_fields = func_get_default_fields($fields_area);
$address_fields = func_get_default_fields($fields_area, 'address_book');
+if (isset($userinfo['address']['B']['id'])) {
+ $additional_b_address_fields = func_get_additional_fields($fields_area, $logged_userid, 'B', $userinfo['address']['B']['id']);
+} else {
+ $additional_b_address_fields = func_get_additional_fields($fields_area, $logged_userid, 'B', 'B');
+}
+if (isset($userinfo['address']['S']['id'])) {
+ $additional_s_address_fields = func_get_additional_fields($fields_area, $logged_userid, 'B', $userinfo['address']['S']['id']);
+} else {
+ $additional_s_address_fields = func_get_additional_fields($fields_area, $logged_userid, 'B', 'S');
+}
+
$name_fields = array();
$is_areas = func_get_profile_areas($fields_area);
$allow_pwd_modify =
@@ -489,18 +500,50 @@ if (
&& $additional_fields
) {
foreach ($additional_fields as $v) {
if (
$v['required'] == 'Y'
+ && $v['section'] != 'B'
&& empty($additional_values[$v['fieldid']])
&& $v['avail'] == 'Y'
&& !$is_admin_editor
) {
$fillerror = true;
break;
}
}
+
+ if (
+ $ship2diff
+ && isset($additional_values['address']['S'])
+ ) {
+ $additional_address_fields_check_result = func_check_additional_address_fields($additional_values['address']['S'], $fields_area);
+ }
+ elseif (
+ !$ship2diff
+ && isset($additional_values['address']['B'])
+ ) {
+ $additional_address_fields_check_result = func_check_additional_address_fields($additional_values['address']['B'], $fields_area);
+ }
+
+ if (
+ !empty($additional_address_fields_check_result['errors'])
+ ) {
+ $fillerror = true;
+ }
+ elseif (
+ !$ship2diff
+ && isset($additional_values['address']['B'])
+ ) {
+ $additional_values['address']['S'] = $additional_values['address']['B'];
+ }
+ elseif (
+ !$ship2diff
+ && isset($additional_values['address'][$userinfo['address']['B']['id']])
+ ) {
+ $additional_values['address']['S'] = $additional_values['address'][$userinfo['address']['B']['id']];
+ }
}
// Check email
if (!func_check_email($email)) {
$errors[] = func_reg_error(2);
@@ -820,22 +863,25 @@ if (
? "'$login_' user has updated '$login' profile"
: "'$login' user has updated '$login' profile"
);
}
- db_query("DELETE FROM $sql_tbl[register_field_values] WHERE userid = '$logged_userid'");
+ db_query("DELETE FROM $sql_tbl[register_field_values] WHERE userid = '$logged_userid' AND addressid = 0");
if (!empty($additional_values)) {
foreach ($additional_values as $k => $v) {
- func_array2insert(
- 'register_field_values',
- array(
- 'fieldid' => $k,
- 'userid' => $logged_userid,
- 'value' => $v,
- )
- );
+ if ($k != 'address') {
+ func_array2insert(
+ 'register_field_values',
+ array(
+ 'fieldid' => $k,
+ 'userid' => $logged_userid,
+ 'value' => $v,
+ 'addressid' => 0
+ )
+ );
+ }
}
}
if ($login_type == 'B') {
@@ -1031,24 +1077,25 @@ if (
);
}
$new_user_flag = true;
- db_query("DELETE FROM $sql_tbl[register_field_values] WHERE userid = '$newuserid'");
+ db_query("DELETE FROM $sql_tbl[register_field_values] WHERE userid = '$newuserid' AND addressid = 0");
- if ($additional_values) {
-
+ if (!empty($additional_values)) {
foreach ($additional_values as $k => $v) {
-
- func_array2insert(
- 'register_field_values',
- array(
- 'fieldid' => $k,
- 'userid' => $newuserid,
- 'value' => $v,
- )
- );
+ if ($k != 'address') {
+ func_array2insert(
+ 'register_field_values',
+ array(
+ 'fieldid' => $k,
+ 'userid' => $newuserid,
+ 'value' => $v,
+ 'addressid' => 0
+ )
+ );
+ }
}
}
if ($usertype == 'B') {
@@ -1662,10 +1709,18 @@ if (!empty($userinfo)) {
&& @is_array($userinfo['address']['B'])
&& is_array($userinfo['address']['S'])
) {
$ship2diff = func_is_adresses_different($userinfo['address']['B'], $userinfo['address']['S'], $fields_area);
+
+ if (!$ship2diff) {
+ $ship2diff = func_is_additional_address_info_different(
+ $userinfo['additional_fields']['address']['B'],
+ $userinfo['additional_fields']['address']['S'],
+ $fields_area
+ );
+ }
$b_display_states = func_is_display_states(addslashes($userinfo['address']['B']['country']));
$s_display_states = (!$ship2diff)
? $b_display_states :
@@ -1833,10 +1888,27 @@ if (
$smarty->assign('default_fields', $default_fields);
$smarty->assign('additional_fields', $additional_fields);
$smarty->assign('is_areas', $is_areas);
+$smarty->assign('additional_b_address_fields', $additional_b_address_fields);
+$smarty->assign('additional_s_address_fields', $additional_s_address_fields);
+
+if (!empty($address_book)) {
+ $additional_address_fields = array();
+ $additional_address_fields['0'] = func_get_additional_fields(@$userinfo['usertype'], @$userinfo['id'], 'B');
+ foreach($address_book as $_ab_record) {
+ $additional_address_fields[$_ab_record['id']] = func_get_additional_fields(@$userinfo['usertype'], @$userinfo['id'], 'B', $_ab_record['id']);
+ }
+ $additional_address_fields['avail'] = 'Y';
+ $smarty->assign('additional_address_fields', $additional_address_fields);
+} else {
+ $additional_address_fields['B'] = $additional_b_address_fields;
+ $additional_address_fields['S'] = $additional_s_address_fields;
+}
+
+
if (!empty($av_error))
$smarty->assign('av_error', $av_error);
$m_usertype = empty($_GET['usertype'])
? $current_area
Index: modules/Advanced_Order_Management/order_edit.php
@@ -448,10 +448,11 @@ if ($REQUEST_METHOD == 'POST') {
$cart_tmp['userinfo']['b_title'] = func_get_title($cart_tmp['userinfo']['b_titleid']);
$cart_tmp['userinfo']['s_title'] = func_get_title($cart_tmp['userinfo']['s_titleid']);
}
if(is_array($additional_fields)) {
$cart_tmp['userinfo']['additional_fields'] = $additional_fields;
+ $cart_tmp['extra']['additional_fields'] = $additional_fields;
}
func_header_location("order.php?orderid=$orderid&mode=edit&show=customer");
}
elseif ($action == 'update_totals') {
Index: modules/One_Page_Checkout/func.php
@@ -81,10 +81,24 @@ function func_ajax_block_opc_profile()
|| isset($_POST['edit_profile'])
) {
$smarty->assign('need_address_info', true);
$smarty->assign('force_change_address', true);
$smarty->assign('address_fields', func_get_default_fields('H', 'address_book'));
+
+ if (isset($userinfo['address']['B']['id'])) {
+ $additional_b_address_fields = func_get_additional_fields($fields_area, $logged_userid, 'B', $userinfo['address']['B']['id']);
+ } else {
+ $additional_b_address_fields = func_get_additional_fields($fields_area, $logged_userid, 'B', 'B');
+ }
+ if (isset($userinfo['address']['S']['id'])) {
+ $additional_s_address_fields = func_get_additional_fields($fields_area, $logged_userid, 'B', $userinfo['address']['S']['id']);
+ } else {
+ $additional_s_address_fields = func_get_additional_fields($fields_area, $logged_userid, 'B', 'S');
+ }
+
+ $smarty->assign('additional_b_address_fields', $additional_b_address_fields);
+ $smarty->assign('additional_s_address_fields', $additional_s_address_fields);
}
$smarty->assign(
'register_script_name',
(
Index: popup_address.php
@@ -164,12 +164,14 @@ if ($REQUEST_METHOD == 'POST') {
// Add/update address
if (($mode == 'update' || $mode == 'add') && !empty($posted_data)) {
$result = func_check_address($posted_data, 'C');
+ $additional_result = func_check_additional_address_fields($additional_values, 'C');
- if (!empty($result['errors'])) {
+ if (!empty($result['errors']) || !empty($additional_result['errors'])) {
+
$errors = $result['errors'];
// Prepare errors data
if (!$is_ajax_request) {
$top_message = array(
@@ -178,13 +180,24 @@ if ($REQUEST_METHOD == 'POST') {
);
}
$reg_error = func_prepare_error($errors);
$reg_error['saved_data'] = func_stripslashes($posted_data);
+
+ $reg_error['additional_data'] = func_stripslashes($additional_values);
+
+ $reg_error['address_id'] = $id;
}
else {
$result = func_save_address($logged_userid, $id, $posted_data);
+
+ // Add/update additional address fields
+ $_aid = !empty($id) ? $id : $result['addressid'];
+ func_save_additional_address_fields($logged_userid, $_aid, $additional_values);
+
+ $reg_error = array();
+
$res = true;
}
}
// Delete address
@@ -239,28 +252,26 @@ if (!empty($id)) {
// Security check
if (empty($address) || $address['userid'] != $logged_userid) {
func_close_window();
}
- // Assign error data
- if (!empty($reg_error)) {
- $smarty->assign('reg_error', $reg_error);
- $smarty->assign('address', func_prepare_address($reg_error['saved_data']));
- $reg_error = array();
- } else {
- $smarty->assign('address', $address);
- }
-
+ $smarty->assign('address', $address);
$smarty->assign('id', $id);
} else {
// Check if there are any addresses already filled in
$is_address_book_empty = func_is_address_book_empty($logged_userid);
$smarty->assign('is_address_book_empty', $is_address_book_empty);
}
+// Assign error data
+if (!empty($reg_error) && $reg_error['address_id'] == $id ) {
+ $smarty->assign('reg_error', $reg_error);
+ $smarty->assign('address', func_prepare_address($reg_error['saved_data']));
+}
+
// Address validation error for anonymous customers
if (
$av_error
&& $is_anonymous
) {
@@ -300,10 +311,29 @@ if ($mode != 'select' || isset($id)) {
}
$default_fields = func_get_default_fields('C', 'address_book');
$smarty->assign('default_fields', $default_fields);
+/**
+ * Additional address fields
+ */
+$additional_address_fields = func_get_additional_fields('C', $logged_userid, 'B', $id);
+
+if (
+ !empty($reg_error['additional_data']) && $reg_error['address_id'] == $id
+) {
+ foreach($additional_address_fields as $_a_key => $_a_field) {
+ if (
+ isset($reg_error['additional_data'][$_a_field['fieldid']])
+ ) {
+ $additional_address_fields[$_a_key]['value'] = $reg_error['additional_data'][$_a_field['fieldid']];
+ }
+ }
+}
+
+$smarty->assign('additional_address_fields', $additional_address_fields);
+
// Assign smarty variables
$smarty->assign('mode', $mode);
$smarty->assign('for', $for);
$smarty->assign('type', @$type);
$smarty->assign('return', @$return);
Index: skin/common_files/admin/main/user_profiles.tpl
@@ -79,10 +79,16 @@ function displayVariants(obj, objv) {
{/if}
{/foreach}
+{foreach from=$additional_address_fields item=v key=k}
+ {if $v.section eq "B"}
+ {include file="admin/main/user_profiles_row.tpl" title=$v.title|default:$v.field name_prefix="add" field=$v.fieldid idprefix="ab" required=$v.required avail=$v.avail}
+ {/if}
+{/foreach}
+
{*** / Address book ***}
{foreach from=$additional_fields item=v key=k}
{if $v.section eq 'A'}
{if $ai_exist ne 'Y'}
Index: skin/common_files/customer/main/address_details_html.tpl
@@ -14,10 +14,16 @@ vim: set ts=2 sw=2 sts=2 et:
{if $default_fields.city and $address.city ne ''}{$address.city|escape}, {/if}
{if $default_fields.state and $address.state ne ''}{$address.statename|default:$address.state|escape}, {/if}
{if $default_fields.county and $address.county ne ''}{$address.countyname|default:$address.county|escape},
{/if}
{if $default_fields.zipcode and $address.zipcode ne ''}{include file="main/zipcode.tpl" val=$address.zipcode zip4=$address.zip4 static=true}
{/if}
{if $default_fields.country and $address.country ne ''}{$address.countryname|default:$address.country|escape}{/if}
+ {if $additional_info ne ''}
+
+ {foreach from=$additional_info item=v}
+ {$v.value}
+ {/foreach}
+ {/if}