function uc_product_kit_uc_order_product_alter in Ubercart 7.3
Same name and namespace in other branches
- 8.4 uc_product_kit/uc_product_kit.module \uc_product_kit_uc_order_product_alter()
Implements hook_uc_order_product_alter().
The hookups for making product kits work on the order edit admin screen.
Parameters
$product: The order product being saved.
$order: The order being edited.
File
- uc_product_kit/
uc_product_kit.module, line 1023 - The product kit module for Ubercart.
Code
function uc_product_kit_uc_order_product_alter(&$product, $order) {
if (empty($product->type) || $product->type !== 'product_kit') {
return;
}
// Have to save each individual product if this is a kit.
foreach ($product->products as $kit_product) {
$qty = $kit_product->qty * $product->qty;
$data = isset($kit_product->data) ? $kit_product->data : array();
$data += module_invoke_all('uc_add_to_cart_data', $_POST['product_controls']['sub_products'][$kit_product->nid]);
$data['shippable'] = $product->shippable;
$kit_product = uc_product_load_variant($kit_product->nid, $data);
$kit_product->qty = $qty;
drupal_alter('uc_order_product', $kit_product, $order);
// Save the individual item to the order.
uc_order_product_save($order->order_id, $kit_product);
}
// Don't save the base kit node, though.
$product->skip_save = TRUE;
}