Okay, now I have the address saved to the uc_addresses table in the database. Also, I have added the delete query to delete the addresses associated with a uid. Posting here to get feedback. Gong to see if I can implement the saved addresses in checkout form bit posted above next.
<?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':
db_query("INSERT INTO {uc_addresses} (uid, label, first_name, last_name, "
."phone, company, street1, street2, city, zone, postal_code, country, "
."created, modified) VALUES (%d, '%s', "
."'%s', '%s', '%s', "
."'%s', '%s', '%s', "
."'%s', %d, '%s', %d, "
."%d, %d)", $edit['uid'], $edit['label'],
$edit['first_name'], $edit['last_name'], $edit['phone'],
$edit['company'], $edit['street1'], $edit['street2'],
$edit['city'], $edit['zone'], $edit['postal_code'],
((is_null($edit['country']) || $edit['country'] == 0) ? variable_get('uc_store_country', 840) : $edit['country']),
time(), time());
return;
case 'delete':
db_query("DELETE FROM {uc_addresses} where uid = %d", $account->uid);
return;
}
}
?>


Joined: 08/28/2007