You are here

function uc_extra_fields_pane_form_uc_store_address_fields_form_alter in Extra Fields Checkout Pane 7

Implements hook_form_FORM_ID_alter() for uc_store_address_fields_form().

Adds enabled/required checkboxes for Extra Fields Pane address fields.

_state

Parameters

array $form:

See also

uc_extra_fields_pane_address_fields_uc_store_address_fields_submit()

File

./uc_extra_fields_pane.module, line 428
Module: uc_extra_fields_pane.module

Code

function uc_extra_fields_pane_form_uc_store_address_fields_form_alter(&$form, $form_state) {
  try {
    $fields = UCXF_FieldList::getAllAddressFields();

    // Similar to uc_store_address_fields_form() from uc_store.module
    foreach ($fields as $fieldname => $field) {

      // The "enabled" setting is inside "$form['uc_address_fields']'.
      $form['uc_address_fields'][$fieldname] = array(
        '#type' => 'checkbox',
        '#default_value' => $field->enabled ? TRUE : FALSE,
      );

      // The "required" setting is inside "$form['uc_address_fields_required']'.
      $form['uc_address_fields_required'][$fieldname] = array(
        '#type' => 'checkbox',
        '#default_value' => $field->required ? TRUE : FALSE,
      );

      // Title field.
      $form['fields'][$fieldname]['uc_field_' . $fieldname] = array(
        '#markup' => $field
          ->output('label'),
      );

      // Add field machine name.
      $form['fields'][$fieldname]['default'] = array(
        '#markup' => $field->db_name,
      );
    }

    // Add submit function so 'enabled', 'required' and 'weight' can be saved.
    array_unshift($form['#submit'], 'uc_extra_fields_pane_form_uc_store_address_fields_form_submit');
  } catch (UCXF_Exception $e) {
    $e
      ->printMessage();
    $e
      ->logError();
  }
}