function uc_product_kit_uc_form_alter in Ubercart 8.4
Same name and namespace in other branches
- 6.2 uc_product_kit/uc_product_kit.module \uc_product_kit_uc_form_alter()
- 7.3 uc_product_kit/uc_product_kit.module \uc_product_kit_uc_form_alter()
Implements hook_uc_form_alter().
Puts a product list on the form, so product kit attributes will work on the order admin edit form. See uc_attribute_form_alter().
File
- uc_product_kit/
uc_product_kit.module, line 91 - The product kit module for Ubercart.
Code
function uc_product_kit_uc_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if ($form_id == 'uc_order_add_product_form') {
if (!isset($form['sub_products'])) {
// We only want product kits.
$kit = $form['node']['#value'];
if ($kit
->getType() !== 'product_kit') {
return;
}
$products = [
'#tree' => TRUE,
];
foreach ($kit->products as $kit_product) {
$products[$kit_product->nid] = [];
}
// Add the products to the beginning of the form for visual aesthetics.
$form = array_merge([
'sub_products' => $products,
], $form);
}
}
elseif (strpos($form_id, 'uc_product_add_to_cart_form') !== FALSE) {
$kit = $form['node']['#value'];
if ($kit
->getType() !== 'product_kit') {
return;
}
$form['products'] = [
'#tree' => TRUE,
];
foreach ($kit->products as $i => $product) {
$form['products'][$i] = [
'#title' => $product
->label(),
];
$form['products'][$i]['nid'] = [
'#type' => 'hidden',
'#value' => $product
->id(),
];
$form['products'][$i]['qty'] = [
'#type' => 'hidden',
'#value' => $product->qty,
];
}
$form['#validate'][] = 'uc_product_kit_add_to_cart_form_validate';
$form['#submit'][] = 'uc_product_kit_add_to_cart_form_submit';
}
elseif (strpos($form_id, 'uc_product_buy_it_now_form') !== FALSE) {
$kit = $form['node']['#value'];
if ($kit
->getType() !== 'product_kit') {
return;
}
$form['products'] = [
'#tree' => TRUE,
];
foreach ($node->products as $i => $product) {
$form['products'][$i] = [
'#title' => $product->title,
];
$form['products'][$i]['nid'] = [
'#type' => 'hidden',
'#value' => $product->nid,
];
$form['products'][$i]['qty'] = [
'#type' => 'hidden',
'#value' => $product->qty,
];
}
$form['#validate'][] = 'uc_product_kit_buy_it_now_form_validate';
$form['#submit'][] = 'uc_product_kit_buy_it_now_form_submit';
}
}