You are here

function uc_checkout_pane_delivery in Ubercart 6.2

Same name and namespace in other branches
  1. 5 uc_cart/uc_cart_checkout_pane.inc \uc_checkout_pane_delivery()
  2. 7.3 uc_cart/uc_cart_checkout_pane.inc \uc_checkout_pane_delivery()

Gets the delivery information.

1 string reference to 'uc_checkout_pane_delivery'
uc_cart_checkout_pane in uc_cart/uc_cart.module
Implements hook_checkout_pane().

File

uc_cart/uc_cart_checkout_pane.inc, line 202
Callbacks for the default Ubercart checkout panes and their corresponding helper functions.

Code

function uc_checkout_pane_delivery($op, &$arg1, $arg2) {
  global $user;
  switch ($op) {
    case 'view':
      $description = t('Enter your delivery address and information here.');
      if ((uc_cart_is_shippable() || !variable_get('uc_cart_delivery_not_shippable', TRUE)) && _checkout_pane_data('billing', 'weight') < _checkout_pane_data('delivery', 'weight') && _checkout_pane_data('billing', 'enabled')) {
        $contents['copy_address'] = array(
          '#type' => 'checkbox',
          '#title' => t('My delivery information is the same as my billing information.'),
          '#attributes' => array(
            'onclick' => "uc_cart_copy_address(this.checked, 'billing', 'delivery');",
          ),
        );
      }
      if ($user->uid) {
        $addresses = uc_select_address($user->uid, 'delivery', 'apply_address(\'delivery\', this.value);', t('Saved addresses'), TRUE);
        if (!empty($addresses)) {
          $contents['delivery_address_select'] = $addresses;
        }
      }
      if (uc_address_field_enabled('first_name')) {
        $delivery_first_name = $arg1 ? $arg1->delivery_first_name : '';
        $contents['delivery_first_name'] = uc_textfield(uc_get_field_name('first_name'), $delivery_first_name, uc_address_field_required('first_name'));
      }
      if (uc_address_field_enabled('last_name')) {
        $delivery_last_name = $arg1 ? $arg1->delivery_last_name : '';
        $contents['delivery_last_name'] = uc_textfield(uc_get_field_name('last_name'), $delivery_last_name, uc_address_field_required('last_name'));
      }
      if (uc_address_field_enabled('company')) {
        $delivery_company = $arg1 ? $arg1->delivery_company : '';
        $contents['delivery_company'] = uc_textfield(uc_get_field_name('company'), $delivery_company, uc_address_field_required('company'), NULL, 64);
      }
      if (uc_address_field_enabled('street1')) {
        $delivery_street1 = $arg1 ? $arg1->delivery_street1 : '';
        $contents['delivery_street1'] = uc_textfield(uc_get_field_name('street1'), $delivery_street1, uc_address_field_required('street1'), NULL, 64);
      }
      if (uc_address_field_enabled('street2')) {
        $delivery_street2 = $arg1 ? $arg1->delivery_street2 : '';
        $contents['delivery_street2'] = uc_textfield(uc_get_field_name('street2'), $delivery_street2, uc_address_field_required('street2'), NULL, 64);
      }
      if (uc_address_field_enabled('city')) {
        $delivery_city = $arg1 ? $arg1->delivery_city : '';
        $contents['delivery_city'] = uc_textfield(uc_get_field_name('city'), $delivery_city, uc_address_field_required('city'));
      }
      if (uc_address_field_enabled('country')) {
        $delivery_country = $arg1 ? $arg1->delivery_country : NULL;
        $contents['delivery_country'] = uc_country_select(uc_get_field_name('country'), $delivery_country, NULL, 'name', uc_address_field_required('country'));
      }
      if (uc_address_field_enabled('zone')) {
        if (isset($_POST['panes']['delivery']['delivery_country'])) {
          $country_id = intval($_POST['panes']['delivery']['delivery_country']);
        }
        else {
          $country_id = $delivery_country;
        }
        $delivery_zone = $arg1 ? $arg1->delivery_zone : NULL;
        $contents['delivery_zone'] = uc_zone_select(uc_get_field_name('zone'), $delivery_zone, NULL, $country_id, 'name', uc_address_field_required('zone'));
        if (isset($_POST['panes']) && count($contents['delivery_zone']['#options']) == 1) {
          $contents['delivery_zone']['#required'] = FALSE;
        }
      }
      if (uc_address_field_enabled('postal_code')) {
        $delivery_postal_code = $arg1 ? $arg1->delivery_postal_code : '';
        $contents['delivery_postal_code'] = uc_textfield(uc_get_field_name('postal_code'), $delivery_postal_code, uc_address_field_required('postal_code'), NULL, 10, 10);
      }
      if (uc_address_field_enabled('phone')) {
        $delivery_phone = $arg1 ? $arg1->delivery_phone : '';
        $contents['delivery_phone'] = uc_textfield(uc_get_field_name('phone'), $delivery_phone, uc_address_field_required('phone'), NULL, 32, 16);
      }
      return array(
        'description' => $description,
        'contents' => $contents,
        'theme' => 'address_pane',
      );
    case 'process':
      $arg1->delivery_first_name = $arg2['delivery_first_name'];
      $arg1->delivery_last_name = $arg2['delivery_last_name'];
      $arg1->delivery_company = $arg2['delivery_company'];
      $arg1->delivery_street1 = $arg2['delivery_street1'];
      $arg1->delivery_street2 = $arg2['delivery_street2'];
      $arg1->delivery_city = $arg2['delivery_city'];
      $arg1->delivery_zone = $arg2['delivery_zone'];
      $arg1->delivery_postal_code = $arg2['delivery_postal_code'];
      $arg1->delivery_country = $arg2['delivery_country'];
      $arg1->delivery_phone = $arg2['delivery_phone'];
      return TRUE;
    case 'review':
      $review[] = array(
        'title' => t('Address'),
        'data' => uc_order_address($arg1, 'delivery', FALSE),
      );
      if (uc_address_field_enabled('phone') && !empty($arg1->delivery_phone)) {
        $review[] = array(
          'title' => t('Phone'),
          'data' => check_plain($arg1->delivery_phone),
        );
      }
      return $review;
  }
}