Page 2 of 14 FirstFirst 123412 ... LastLast
Results 11 to 20 of 138
  1. #11
    Join Date
    Sep 2005
    Location
    Spencer, MA
    Posts
    41
    Plugin Contributions
    0

    Default Re: Add a field into create account

    thank you for the quick reply. I will do the alterations this weekend.

  2. #12
    Join Date
    Dec 2006
    Posts
    19
    Plugin Contributions
    0

    Default Re: Add a field into create account

    Thanks for the clear directions on getting this field added. It's exactly what we wanted ourselves!

    This works great for new customers and for admins looking at customer records. However, we also needed to allow existing customers the ability to edit their tax id number (or add it if they've never done so).

    Here are the steps we followed to allow an existing customer to edit his/her tax ID. Hopefully it's helpful as well.

    1) 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 'Tax ID Number:'; ?></label>
    <?php echo zen_draw_input_field('taxid', $account->fields['customers_taxid'], 'id="taxid"') . (zen_not_null(ENTRY_TAXID_TEXT) ? '<span class="alert">' . ENTRY_TAXID_TEXT . '</span>': ''); ?>
    <br class="clearBoth" />
    **BY THE WAY: the variables ENTRY_TAXID_TEXT weren't in our english.php file, so we added them right after ENTRY_FAX_NUMBER_TEXT. As has been stated in a previous post, you could leave the TAXID out of it and just use the FAX_NUMBER there, but we wanted to be thorough even though it probably makes little difference.
    2) 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";


    That should do it. BTW, we created these instructions after we implemented the change, so hopefully we didn't overlook something.

    jbhansen

  3. #13
    Join Date
    Aug 2007
    Posts
    1
    Plugin Contributions
    0

    Default Re: Add a field into create account

    thank you for this how to. I have one question though. I added 3 fields like this (Vehicle Year, Make, and Model) and I would like them to show up on the Invoice.

    I tried adding them to Invoice.php, and when I pull up an invoice, I get an error.

    I added the information at the top:
    Code:
    customers_state, customers_country, customers_telephone,
    customers_year, customers_make, customers_model,
    customers_email_address, customers_address_format_id,
    and i added it below the e-mail address:
    HTML Code:
    <tr>
        <td class="main"><?php echo '<a href="mailto:' . $order->customer['email_address'] . '">' . $order->customer['email_address'] . '</a>'; ?></td>
    </tr>
    <tr>
        <td class="main"><?php echo $order->customer['customers_year']; ?>&nbsp;<?php echo $order->customer['customers_make']; ?>&nbsp;<?php echo $order->customer['customers_model']; ?></td>
    </tr>
    this is the error i get:
    Code:
    1054 Unknown column 'customers_year' in 'field list'
    any ideas??

  4. #14

    Default Re: Add a field into create account

    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>

  5. #15

    Default Re: Add a field into create account

    Thanks to jbhansen for pioneering it. I've also updated his instructions. (I didn't edit my above post in time to add this)

    Here are the steps we followed to allow an existing customer to edit his/her tax ID. Hopefully it's helpful as well.

    1) 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" />

    2) 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";

  6. #16
    Join Date
    Oct 2007
    Posts
    9
    Plugin Contributions
    0

    Default Re: Add a field into create account

    This is fantastic!! Thank you for sharing :)
    Does anyone know how I can make this field 'required'?
    Adding the errors if they do not fill it in , and the red required text beside the box?

    Thanks
    KT

  7. #17
    Join Date
    Apr 2007
    Posts
    17
    Plugin Contributions
    0

    Default Re: Add a field into create account

    kdtaylor it's very simple in " define('ENTRY_TAXID_NUMBER_TEXT', ''); " put an "*" as the definition like this: "define('ENTRY_TAXID_NUMBER_TEXT', '*');"

    I hope I made myself clear as my English is a little rusty

  8. #18
    Join Date
    Oct 2007
    Posts
    9
    Plugin Contributions
    0

    Default Re: Add a field into create account

    I have had a play and managed to get error messages working ...
    Here is how I did it ....

    Please note ... rather than 'taxid' I am using 'studentname' as our cart if for a school..
    1. /includes/languages/YOURTEMPLATE/english.php
    a. Find ' define('ENTRY_TELEPHONE_NUMBER_TEXT', '*');'
    b. Under this entry insert
    //
    define('ENTRY_STUDENTNAME', 'Students Name:');
    define('ENTRY_STUDENTNAME_ERROR', 'Your childs name must contain a minimum of ' . ENTRY_FIRST_NAME_MIN_LENGTH . ' characters.');
    define('ENTRY_STUDENTNAME_TEXT', '*');
    //

    2. /includes/modules/pages/create_account/jscript_form_check.php
    a. Find ' check_input("telephone", <?php echo ENTRY_TELEPHONE_MIN_LENGTH; ?>, "<?php echo ENTRY_TELEPHONE_NUMBER_ERROR; ?>");'
    b. Under this entry insert
    <!-- STUDENT INFO HERE -->
    check_input("studentname", <?php echo ENTRY_FIRST_NAME_MIN_LENGTH; ?>, "<?php echo ENTRY_STUDENTNAME_ERROR; ?>");
    <!-- END -->

    3. /includes/modules/pages/account_edit/jscript_form_check.php
    a. Find ' check_input("telephone", <?php echo ENTRY_TELEPHONE_MIN_LENGTH; ?>, "<?php echo ENTRY_TELEPHONE_NUMBER_ERROR; ?>");'
    b. Under this entry insert
    <!-- STUDENT INFO HERE -->
    check_input("studentname", <?php echo ENTRY_FIRST_NAME_MIN_LENGTH; ?>, "<?php echo ENTRY_STUDENTNAME_ERROR; ?>");
    <!-- END -->

    4. /includes/template/YOURTEMPLATE/template/
    a. Update ENTRY_???_TEXT fields that you hade previously entered for taxid info

    <br class="clearBoth" />
    <label class="inputLabel" for="studentname"><?php echo 'Students Name:'; ?></label>
    <?php echo zen_draw_input_field('studentname', $account->fields['customers_studentname'], 'id="studentname"') . (zen_not_null(ENTRY_STUDENTNAME_TEXT) ? '<span class="alert">' . ENTRY_STUDENTNAME_TEXT . '</span>': ''); ?>

  9. #19
    Join Date
    Oct 2006
    Posts
    170
    Plugin Contributions
    0

    Default Re: Add a field into create account

    Great post, thank you for taking the time to write the steps out - this is a great step-by-step for PHP novices & pros alike as you clearly identify each page that needs updating! Should be a sticky IMO...

  10. #20
    Join Date
    Oct 2007
    Posts
    8
    Plugin Contributions
    0

    Default Re: Add a field into create account

    Tremendous advice contained within. May i please enquire as to how to take the new field a stage further ? My requirement is that instead a 'free-input field, i would like the customer to select an option from a dropdown menu - AND make it compulsory.
    Any suggestions ? Thanks.

 

 
Page 2 of 14 FirstFirst 123412 ... LastLast

Similar Threads

  1. How do I add a custom pulldown field to create account page?
    By margarita in forum Templates, Stylesheets, Page Layout
    Replies: 1
    Last Post: 3 May 2008, 07:48 PM
  2. add a field to "create account"
    By bobio in forum Templates, Stylesheets, Page Layout
    Replies: 0
    Last Post: 26 Jan 2008, 07:35 AM
  3. Create account Form field allign
    By manfer72 in forum Templates, Stylesheets, Page Layout
    Replies: 1
    Last Post: 8 Jan 2008, 12:01 AM
  4. Create a requested field in registration account
    By rosponina in forum Managing Customers and Orders
    Replies: 6
    Last Post: 31 Jul 2006, 09:15 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR