function uc_flatrate_form_alter in Ubercart 7.3
Same name and namespace in other branches
- 5 shipping/uc_flatrate/uc_flatrate.module \uc_flatrate_form_alter()
- 6.2 shipping/uc_flatrate/uc_flatrate.module \uc_flatrate_form_alter()
Implements hook_form_alter().
Adds a form element for the shipping rate of a product.
File
- shipping/
uc_flatrate/ uc_flatrate.module, line 48 - 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)) {
$weight = variable_get('uc_quote_method_weight', array());
$result = db_query("SELECT mid, title, product_rate FROM {uc_flatrate_methods}");
foreach ($result as $method) {
// Ensure default weight is set.
$weight += array(
'flatrate_' . $method->mid => 0,
);
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' => 'uc_price',
'#title' => check_plain($method->title),
'#default_value' => isset($form['#node']->flatrate[$method->mid]) ? $form['#node']->flatrate[$method->mid] : '',
'#description' => t('Default rate: %price', array(
'%price' => uc_currency_format($method->product_rate),
)),
'#weight' => $weight['flatrate_' . $method->mid],
'#empty_zero' => FALSE,
);
}
}
}