Thanks to xlr82quik for pioneering this mod. I've tidied up the instructions and made the modications a little more compliant and easier to maintain. You can do a file compare to see the changes if you like.
Procedure:
0. Backup your database using PHPMyAdmin, also backup the affected files before making each change.
1. Go to PHPMyAdmin and select your database from the pulldown.
2. On the left sidebar of PHPMyAdmin click on the table "customers"
3. On the right side of the screen you will see all the fields like customers_telephone, customers_fax and so-on... Now scroll below this and you should see a way to add a field, in mine I saw:
The "Add" text box should contain "1", in the field(s) section, select the "At end of table" radio button, leave everything else as it is and then click the "GO" button.
This sent me to another page to name my field and stuff so I named it "customers_taxid" (no quotation marks). Then I selected "VarChar" and a length of "32"(or whatever length in characters you want your new entry field), Collation = (it was blank and I left it blank), Attributed = (it was blank and I left it blank), Null = NULL
Then I clicked "SAVE"
4. I then saw my new field in the table it was on the bottom of all the other ones that were previously there.
5. Close PHPMyAdmin
6. Open file includes/modules/YOURTEMPLATE/create_account.php
(or if your template did not override this then simply use the one in modules folder)
7a. Now search for the following:
$fax = zen_db_prepare_input($_POST['fax']);
DO NOT ERASE THE ABOVE CODE. PUT THE NEW CODE DIRECTLY UNDER THE CODE ABOVE, HERE IS THE EXTRA LINE OF CODE:
$taxid = zen_db_prepare_input($_POST['taxid']);
7b. Next search for:
'customers_fax' => $fax,
DO NOT ERASE THE ABOVE CODE. PUT THE NEW CODE DIRECTLY UNDER THE CODE ABOVE, HERE IS THE EXTRA LINE OF CODE:
'customers_taxid' => $taxid,
8a. Now open file: includes/languages/YOURTEMPLATE/english.php
(or if your template did not override this then simply use the one in languages folder)
8b. Search for the following code:
define('TABLE_HEADING_PHONE_FAX_DETAILS', 'Additional Contact Details');
this is the heading for the section on the form that houses the telephone number and fax number inputs, I changed it to this:
define('TABLE_HEADING_PHONE_FAX_DETAILS', 'Additional Details');
this allowed my heading to say "Additional Information" instead of the original text of "Additional Contact Details" *
8c. Also add the following code:
define('ENTRY_TAXID_NUMBER', 'TAX ID:');
define('ENTRY_TAXID_NUMBER_TEXT', '');
to be tidy, this entry should be added to where all the other "define('ENTRY..." statements are.
9. Now open file: includes/templates/YOURTEMPLATE/templates/tpl_modules_create_account.php
9a. Now search for the following code:
<?php
if (ACCOUNT_FAX_NUMBER == 'true') {
?>
<br class="clearBoth" />
<label class="inputLabel" for="fax"><?php echo ENTRY_FAX_NUMBER; ?></label>
<?php echo zen_draw_input_field('fax', $account->fields['customers_fax'], 'id="fax"') . (zen_not_null(ENTRY_FAX_NUMBER_TEXT) ? '<span class="alert">' . ENTRY_FAX_NUMBER_TEXT . '</span>': ''); ?>
<?php
}
?>
DO NOT ERASE THE ABOVE CODE, ONLY PASTE THE NEW LINES OF CODE BELOW THE CODE ABOVE, here is the new code to paste under the code above:
<br class="clearBoth" />
<label class="inputLabel" for="taxid"><?php echo ENTRY_TAXID_NUMBER; ?></label>
<?php echo zen_draw_input_field('taxid', $account->fields['customers_taxid'], 'id="taxid"') . (zen_not_null(ENTRY_TAXID_NUMBER_TEXT) ? '<span class="alert">' . ENTRY_TAXID_NUMBER_TEXT . '</span>': ''); ?>
10. Now go to Admin/customers.php and edit this file.
(editing this file will allow you to see the taxid field when you edit customer information in the administrative section)
11. Search for:
$customers_fax = zen_db_prepare_input($_POST['customers_fax']);
DO NOT ERASE THE ABOVE CODE. PUT THE NEW CODE DIRECTLY UNDER THE CODE ABOVE, HERE IS THE EXTRA LINE OF CODE:
$customers_taxid = zen_db_prepare_input($_POST['customers_taxid']);
11a. Now search for:
'customers_fax' => $customers_fax,
DO NOT ERASE THE ABOVE CODE. PUT THE NEW CODE DIRECTLY UNDER THE CODE ABOVE, HERE IS THE EXTRA LINE OF CODE:
'customers_taxid' => $customers_taxid,
11b. Now search for:
a.entry_country_id, c.customers_telephone, c.customers_fax,
REPLACE THIS CODE WITH THE FOLLOWING CODE BELOW:
a.entry_country_id, c.customers_telephone, c.customers_fax, c.customers_taxid,
(ALL I DID WAS ADD "c.customers_taxid," TO THE END OF THE EXISTING CODE.)
11c. Now search for:
<tr>
<td class="main"><?php echo ENTRY_FAX_NUMBER; ?></td>
<td class="main">
<?php
if ($processed == true) {
echo $cInfo->customers_fax . zen_draw_hidden_field('customers_fax');
} else {
echo zen_draw_input_field('customers_fax', $cInfo->customers_fax, zen_set_field_length(TABLE_CUSTOMERS, 'customers_fax', 15));
}
?>
</td>
</tr>
DO NOT ERASE THIS CODE SIMPLY GO DIRECTLY UNDER THIS CODE AND ADD IN THE FOLLOWING CODE:
<tr>
<td class="main"><?php echo ENTRY_TAXID_NUMBER; ?></td>
<td class="main">
<?php
if ($processed == true) {
echo $cInfo->customers_taxid . zen_draw_hidden_field('customers_taxid');
} else {
echo zen_draw_input_field('customers_taxid', $cInfo->customers_taxid, zen_set_field_length(TABLE_CUSTOMERS, 'customers_taxid', 15));
}
?>
</td>
</tr>