You are here

function uc_flatrate_form_alter in Ubercart 6.2

Same name and namespace in other branches
  1. 5 shipping/uc_flatrate/uc_flatrate.module \uc_flatrate_form_alter()
  2. 7.3 shipping/uc_flatrate/uc_flatrate.module \uc_flatrate_form_alter()

Implements hook_form_alter().

Add a form element for the shipping rate of a product.

File

shipping/uc_flatrate/uc_flatrate.module, line 50
Shipping quote module that defines a flat shipping rate for each product.

Code

function uc_flatrate_form_alter(&$form, $form_state, $form_id) {
  if (uc_product_is_product_form($form)) {
    $sign_flag = variable_get('uc_sign_after_amount', FALSE);
    $currency_sign = variable_get('uc_currency_sign', '$');
    $enabled = variable_get('uc_quote_enabled', array());
    $weight = variable_get('uc_quote_method_weight', array());
    $result = db_query("SELECT mid, title, product_rate FROM {uc_flatrate_methods}");
    $context = array(
      'revision' => 'formatted',
      'type' => 'amount',
    );
    while ($method = db_fetch_object($result)) {
      if (!isset($form['shipping']['flatrate'])) {
        $form['shipping']['flatrate'] = array(
          '#type' => 'fieldset',
          '#title' => t('Flat shipping rates'),
          '#description' => t("Overrides the default shipping rate per product for each flat rate shipping method. Leave field empty to use the method's default value."),
          '#tree' => TRUE,
          '#collapsible' => TRUE,
          '#collapsed' => FALSE,
          '#weight' => 0,
        );
      }
      $form['shipping']['flatrate'][$method->mid] = array(
        '#type' => 'textfield',
        '#title' => $method->title,
        '#default_value' => isset($form['#node']->flatrate[$method->mid]) ? $form['#node']->flatrate[$method->mid] : '',
        '#description' => t('Default rate: %price', array(
          '%price' => uc_price($method->product_rate, $context),
        )),
        '#size' => 16,
        '#field_prefix' => $sign_flag ? '' : $currency_sign,
        '#field_suffix' => $sign_flag ? $currency_sign : '',
        '#weight' => $weight['flatrate_' . $method->mid],
      );
    }
  }
}