Code:
BACKUP
0. Backup your database using PHPMyAdmin,
ALSO backup the affected files before making each change.
AFFECTED FILES TO BACKUP:
includes/modules/YOURTEMPLATE/create_account.php
includes/languages/YOURTEMPLATE/english.php
includes/templates/YOURTEMPLATE/templates/tpl_modules_create_account.php
Admin/customers.php
includes/templates/YOUR TEMPLATE/templates/tpl_account_edit_default.php
includes/modules/pages/account_edit/header_php.php
includes/languages/YOURTEMPLATE/english.php
includes/modules/pages/create_account/jscript_form_check.php
includes/modules/pages/account_edit/jscript_form_check.php
includes/modules/create_account.php
ADD TABLE TO DATABASE:
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
TO ADD FIELD FOR NEW CUSTOMERS:
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>': ''); ?>
TO ADD FIELD UNDER ADMIN FOR EDITING EXISTING CUSTOMERS:
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>
12) In the file \includes\templates\<YOUR TEMPLATE>\templates\tpl_account_edit_default.php (it wasn't there for us so we copy-pasted it from the template_default folder)
Right after:
<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>': ''); ?>
<br class="clearBoth" />
Inserted:
<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>': ''); ?>
<br class="clearBoth" />
13) In the file \includes\modules\pages\account_edit\header_php.php:
a) After:
$fax = zen_db_prepare_input($_POST['fax']);
Inserted:
$taxid = zen_db_prepare_input($_POST['taxid']);
b) After:
array('fieldName'=>'customers_fax', 'value'=>$fax, 'type'=>'string'),
Inserted:
array('fieldName'=>'customers_taxid', 'value'=>$taxid, 'type'=>'string'),
c) Within the array:
$account_query = "SELECT customers_gender, customers_firstname, customers_lastname,
customers_dob, customers_email_address, customers_telephone,
customers_fax, customers_email_format, customers_referral
FROM " . TABLE_CUSTOMERS . "
WHERE customers_id = :customersID";
Added customers_taxid, as follows:
$account_query = "SELECT customers_gender, customers_firstname, customers_lastname,
customers_dob, customers_email_address, customers_telephone,
customers_fax, customers_taxid, customers_email_format, customers_referral
FROM " . TABLE_CUSTOMERS . "
WHERE customers_id = :customersID";
Good luck!
Bookmarks