function uc_addresses_form_user_register_form_alter in Ubercart Addresses 7
Implements hook_form_FORM_ID_alter() for form user_register_form().
Adds an address form to the user register form if set.
Return value
void|array Void if no address is required upon registering. The complete form array otherwise.
See also
uc_addresses_form_user_register_form_alter()
File
- ./
uc_addresses.module, line 1509 - Adds user profile address support to Ubercart.
Code
function uc_addresses_form_user_register_form_alter(&$form, &$form_state) {
// Check if we need to ask for an address upon registering.
if (user_access('administer users')) {
// User is admin.
$require_address = variable_get('uc_addresses_require_address_admin', TRUE);
}
else {
$require_address = variable_get('uc_addresses_require_address', TRUE);
}
if ($require_address) {
if (isset($form_state['storage']['uc_addresses_address']) && $form_state['storage']['uc_addresses_address'] instanceof UcAddressesAddress) {
$address = $form_state['storage']['uc_addresses_address'];
}
else {
$address = UcAddressesAddressBook::newAddress();
}
$form['uc_addresses'] = array(
'#type' => 'fieldset',
'#title' => t('Address'),
);
$form['uc_addresses']['address'] = array(
'#type' => 'uc_addresses_address',
'#uc_addresses_address' => $address,
'#uc_addresses_context' => 'register',
);
// Execute uc_addresses_form_user_register_form_submit() before the account gets saved.
array_unshift($form['#submit'], 'uc_addresses_form_user_register_form_submit');
// Store address, so it can be picked up when the form is rebuild
// (this happens when an other country is chosen and the zone field is updated).
$form_state['storage']['uc_addresses_address'] = $address;
return $form;
}
}