You are here

protected function AddressForm::selectAddress in Ubercart 8.4

Chooses an address to fill out a form.

1 call to AddressForm::selectAddress()
AddressForm::buildForm in shipping/uc_fulfillment/src/Form/AddressForm.php
Form constructor.

File

shipping/uc_fulfillment/src/Form/AddressForm.php, line 81

Class

AddressForm
Helper function for addresses in forms.

Namespace

Drupal\uc_fulfillment\Form

Code

protected function selectAddress(array $addresses = []) {
  $quote_config = $this
    ->config('uc_quote.settings');
  $ship_from_address = Address::create($quote_config
    ->get('ship_from_address'));
  if (!in_array($ship_from_address, $addresses)) {
    $addresses[] = $ship_from_address;
  }
  $blank = Address::create([
    'first_name' => '',
    'last_name' => '',
    'company' => '',
    'street1' => '',
    'street2' => '',
    'city' => '',
    'postal_code' => '',
    'country' => '',
    'zone' => '',
    'phone' => '',
  ]);
  $options = [
    Json::encode($blank) => t('- Reset fields -'),
  ];
  foreach ($addresses as $address) {
    $options[Json::encode($address)] = $address
      ->getCompany() . ' ' . $address
      ->getStreet1() . ' ' . $address
      ->getCity();
  }
  $select = [
    '#type' => 'select',
    '#title' => t('Saved addresses'),
    '#options' => $options,
    '#default_value' => Json::encode($addresses[0]),
    '#attributes' => [
      'onchange' => 'apply_address(\'pickup\', this.value);',
    ],
  ];
  return $select;
}