function commerce_registration_form_alter in Commerce Registration 7
Same name and namespace in other branches
- 7.2 commerce_registration.module \commerce_registration_form_alter()
Implements hook_form_alter().
Changes the product title in the add to cart form to have the remaining capacity if available.
File
- ./
commerce_registration.module, line 278 - Commerce Registration module code.
Code
function commerce_registration_form_alter(&$form, &$form_state, $form_id) {
// Add waitlist/slots available text to Add to Cart form.
if (substr($form_id, 0, 30) == 'commerce_cart_add_to_cart_form') {
switch ($form['product_id']['#type']) {
case "select":
$products = $form['product_id']['#options'];
foreach ($products as $product_id => $title) {
$product = commerce_product_load($product_id);
$title = commerce_registration_get_product_title($product);
$form['product_id']['#options'][$product_id] = $title;
}
break;
case "hidden":
$product = commerce_product_load($form['product_id']['#value']);
$entity = array(
'id' => $product->product_id,
'type' => 'commerce_product',
'bundle' => $product->type,
);
if (registration_entity_registration_status($entity) == 1) {
$submit = $form['submit'];
unset($form['submit']);
if (registration_entity_has_capacity_limit($entity)) {
$capacity = registration_entity_slots_available($entity);
$settings = registration_entity_settings($entity);
$wl = 0 == $settings['settings']['waitlist'] ? "" : "(waitlist only)";
$capacity = $capacity != 0 ? format_plural($capacity, '1 slot available', '@count slots available') : t('No slots available @wl', array(
'@wl' => $wl,
));
$form['capacity'] = array(
'#type' => 'markup',
'#markup' => '<em>' . $capacity . '</em>',
);
}
if (registration_can_register($entity)) {
$form['submit'] = $submit;
}
else {
$form['not_available'] = array(
'#type' => 'markup',
'#markup' => t('<p><strong>This item is currently unavailable.</strong></p>'),
);
}
}
break;
}
}
// Add administrative Registration settings to Product Add/Edit form.
if (substr($form_id, 0, 32) == 'commerce_product_ui_product_form') {
if (!function_exists('registration_bundle_options')) {
module_load_include('inc', 'registration', 'includes/registration.admin');
}
$product_info = array(
'id' => 0,
'type' => 'commerce_product',
'bundle' => 'product',
);
if (isset($form_state['build_info']['args'][0])) {
$product = $form_state['build_info']['args'][0];
$product_info['id'] = $product->product_id;
$product_info['bundle'] = $product->type;
}
$form['registration_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Registration Settings'),
'#collapsible' => TRUE,
'#collapsed' => !registration_entity_registration_status($product_info),
);
$settings = registration_entity_settings($product_info);
$form['registration_settings'] += registration_default_settings_base_form(array(
'registration_settings',
), $settings);
$open = $form['registration_settings']['settings']['open_date']['#default_value'];
$close = $form['registration_settings']['settings']['close_date']['#default_value'];
$form['registration_settings']['settings']['open_date']['#default_value'] = date('c', (int) $open);
$form['registration_settings']['settings']['close_date']['#default_value'] = date('c', (int) $close);
$form['registration_settings']['settings']['status']['#weight'] = -2;
$form['registration_settings']['settings']['bundle'] = array(
'#type' => 'select',
'#options' => registration_bundle_options(),
'#title' => t('Registration Bundle'),
'#parents' => array(
'registration_settings',
'settings',
'bundle',
),
'#weight' => -1,
'#default_value' => registration_entity_registration_bundle($product_info),
);
unset($form['registration_settings']['actions']);
$form['actions']['submit']['#submit'][] = 'commerce_registration_product_ui_form_submit';
}
}