You are here

function uc_extra_fields_pane_uc_addresses_fields in Extra Fields Checkout Pane 7

Same name and namespace in other branches
  1. 6.2 uc_extra_fields_pane.module \uc_extra_fields_pane_uc_addresses_fields()

Implements hook_uc_addresses_fields().

Register all address fields used by Ubercart Addresses.

File

./uc_extra_fields_pane.uc_addresses.inc, line 12
Hook implementations for the Ubercart Addresses module.

Code

function uc_extra_fields_pane_uc_addresses_fields() {
  try {
    $data = array();
    $fields = UCXF_FieldList::getAllAddressFields();
    foreach ($fields as $field) {
      $data[$field->db_name] = array(
        'title' => $field
          ->output('label'),
        'handler' => 'UcAddressesUCXFHandler',
        'display_settings' => array(
          'default' => TRUE,
          'address_view' => $field
            ->may_display('uc_addresses'),
          'checkout_review' => $field
            ->may_display('review'),
          'order_view' => $field
            ->may_display('order'),
        ),
      );

      // Specify data type. Defaults to 'text'.
      switch ($field->value_type) {
        case UCXF_Field::UCXF_WIDGET_TYPE_CHECKBOX:
          $data[$field->db_name]['type'] = 'boolean';
          break;
        default:
          $data[$field->db_name]['type'] = 'text';
          break;
      }

      // Entity API integration: specify option list for select
      // fields.
      switch ($field->value_type) {
        case UCXF_Field::UCXF_WIDGET_TYPE_SELECT:
        case UCXF_Field::UCXF_WIDGET_TYPE_PHP_SELECT:
          $data[$field->db_name]['options list'] = 'uc_extra_fields_pane_option_list';
          break;
      }
    }
    return $data;
  } catch (UCXF_Exception $e) {
    $e
      ->printMessage();
    $e
      ->logError();
  }
}