Index: branches/5.2.x/units/orders/orders_tag_processor.php =================================================================== diff -u -N -r14821 -r14827 --- branches/5.2.x/units/orders/orders_tag_processor.php (.../orders_tag_processor.php) (revision 14821) +++ branches/5.2.x/units/orders/orders_tag_processor.php (.../orders_tag_processor.php) (revision 14827) @@ -1,6 +1,6 @@ Application->recallObject($this->Prefix . '.last'); /* @var $order OrdersItem */ - $order_prefix = $params['type'] == 'billing' ? 'Billing' : 'Shipping'; - $names = explode(' ', $order->GetDBField($order_prefix . 'To'), 2); + $order_helper =& $this->Application->recallObject('OrderHelper'); + /* @var $order_helper OrderHelper */ - if ( !$user->GetDBField('FirstName') ) { - $user->SetDBField('FirstName', getArrayValue($names, 0)); - } + $user_fields = $order_helper->getUserFields($order, $params['type'] == 'billing' ? 'Billing' : 'Shipping'); - if ( !$user->GetDBField('LastName') ) { - $user->SetDBField('LastName', getArrayValue($names, 1)); - } - - $order_fields = Array ( - 'Company', 'Phone', 'Fax', 'Email', 'Address1' => 'Street', - 'Address2' => 'Street2', 'City', 'State', 'Zip', 'Country' - ); - - foreach ($order_fields as $src_field => $dst_field) { - if ( is_numeric($src_field) ) { - $src_field = $dst_field; + foreach ($user_fields as $field => $value) { + if ( !$user->GetDBField($field) ) { + $user->SetDBField($field, $value); } - - if ( !$user->GetDBField($dst_field) ) { - $user->SetDBField($dst_field, $order->GetDBField($order_prefix . $src_field)); - } } $cs_helper =& $this->Application->recallObject('CountryStatesHelper');