You are here

function uc_extra_fields_pane_addressfields_uc_addresses_get_address_form_submit in Extra Fields Checkout Pane 6.2

uc_extra_fields_pane_addressfields_uc_addresses_get_address_form_submit()

_state

Parameters

array $form:

See also

uc_extra_fields_pane_addressfields_uc_addresses_get_address_form_alter()

1 string reference to 'uc_extra_fields_pane_addressfields_uc_addresses_get_address_form_submit'
uc_extra_fields_pane_addressfields_uc_addresses_get_address_form_alter in includes/addressfields.inc
uc_extra_fields_pane_addressfields_uc_addresses_get_address_form_alter()

File

includes/addressfields.inc, line 389
These functions adds extra address fields to forms

Code

function uc_extra_fields_pane_addressfields_uc_addresses_get_address_form_submit($form, $form_state) {
  $address = $form_state['values']['panes']['address'];

  // Load field definitions
  $fields = UCXF_FieldList::getFieldsFromPane(array(
    'extra_delivery',
    'extra_billing',
  ));

  // MegaChriz:
  //  address id is not available when address is added, only when it is edited,
  //  we need to wait until uc_addresses is improved on this part.
  //  see: drupal.org/node/851658
  //  with the patch applied in #4, $form_state['storage']['aid'] will contain the address id.
  // Get address id
  // WARNING: $form_state['storage']['aid'] will never contain anything with current version of uc_addresses (v1.0)
  $address_id = $address['aid'] ? $address['aid'] : $form_state['storage']['aid'];

  // Save values
  if ($address_id) {
    foreach ($fields as $fieldname => $field) {
      uc_extra_fields_pane_value_save(array(
        'element_id' => $address_id,
        'element_type' => UCXF_VALUE_ADDRESS,
        'field_id' => $field->field_id,
        'value' => $address[$fieldname],
      ));
    }
  }
}