Re: Re: Re: Re: Re: Re: Re: Re: Re: Thanks! I hope you can get

Posts: 302
Joined: 08/28/2007
Early adopter... addicted to alphas.Not KulvikTheminator

Thanks for that, bendiy.

The site I'm working on will need to use zone information to show different payment modules.

I've hacked the uc_addresses.module a bit and changed this function:

<?php
/**
* Implementation of hook_user().
*/
function uc_addresses_user($op, &$edit, &$account, $category = null){
  global
$user;
  switch (
$op){
    case
'view':
      if (
user_access('edit and view addresses') || $user->uid == $account->uid) {
       
$link = l('here', 'user/'. $account->uid .'/addresses');
       
$items = array();
       
$items['addresses'] = array('title' => t('Manage Addresses'),
         
'value' => 'Click ' . $link . ' to manage your addresses.',
         
'class' => 'member',
        );
        return array(
t('Addresses') => $items);
      }
      else {
        return
NULL;
      }
    case
'register':
     
$form['address'] = array(
       
'#type' => 'fieldset',
       
'#title' => t("Address"),
       
'#collapsible' => TRUE,
       
'#collapsed' => FALSE,
      );
     
$form['address']['label'] = uc_textfield('Save Address As', $arg1->label, TRUE);
      if (
uc_address_field_enabled('first_name')) {
       
$form['address']['first_name'] = uc_textfield(uc_get_field_name('first_name'), $arg1->first_name, uc_address_field_required('first_name'));
      }
      if (
uc_address_field_enabled('last_name')) {
       
$form['address']['last_name'] = uc_textfield(uc_get_field_name('last_name'), $arg1->last_name, uc_address_field_required('last_name'));
      }
      if (
uc_address_field_enabled('phone')) {
       
$form['address']['phone'] = uc_textfield(uc_get_field_name('phone'), $arg1->phone, uc_address_field_required('phone'), NULL, 32, 16);
      }
      if (
uc_address_field_enabled('company')) {
       
$form['address']['company'] = uc_textfield(uc_get_field_name('company'), $arg1->company, uc_address_field_required('company'), NULL, 64);
      }
      if (
uc_address_field_enabled('street1')) {
       
$form['address']['street1'] = uc_textfield(uc_get_field_name('street1'), $arg1->street1, uc_address_field_required('street1'), NULL, 64);
      }
      if (
uc_address_field_enabled('street2')) {
       
$form['address']['street2'] = uc_textfield(uc_get_field_name('street2'), $arg1->street2, uc_address_field_required('street2'), NULL, 64);
      }
      if (
uc_address_field_enabled('city')) {
       
$form['address']['city'] = uc_textfield(uc_get_field_name('city'), $arg1->city, uc_address_field_required('city'));
      }
      if (
uc_address_field_enabled('country')) {
       
$form['address']['country'] = uc_country_select(uc_get_field_name('country'), $arg1->country, NULL, 'name', uc_address_field_required('country'));
      }
      if (
uc_address_field_enabled('zone')) {
        if (isset(
$_POST['country'])) {
         
$country_id = intval($_POST['country']);
        }
        else {
         
$country_id = $arg1->country;
        }
       
$form['address']['zone'] = uc_zone_select(uc_get_field_name('zone'), $arg1->zone, NULL, $country_id, 'name', uc_address_field_required('zone'));
      }
      if (
uc_address_field_enabled('postal_code')) {
       
$form['address']['postal_code'] = uc_textfield(uc_get_field_name('postal_code'), $arg1->postal_code, uc_address_field_required('postal_code'), NULL, 10, 10);
      }
      return
$form; // address form isn't themed
   
case 'insert':
     
// insert address to database
     
return;
  }
}
?>

This makes the address form show up on user/register and the fields are validated as usual. How would be the correct way to insert the address into the uc_addresses table in the database?

Storing Address information in User Profile By: bendiy (74 replies) Thu, 10/25/2007 - 19:04