hook_cart_display

Function hook_cart_display() in uc_cart.module:
<?php
  hook_cart_display
($item)
?>

Description:

Product type modules allow the creation of nodes that can be added to the cart. The cart determines how they are displayed through this hook. This is especially important for product kits, because it may be displayed as a single unit in the cart even though it is represented as several items.

Parameters:
  • $item - The item in the cart to display.
Return value:

A form array containing the following elements:

Key #type #value
nid value The node id of the $item.
module value The module implementing this hook and the node represented by $item.
remove checkbox If selected, removes the $item from the cart.
description markup Themed markup (usually an unordered list) displaying extra information.
title markup The displayed title of the $item.
#total float Numeric price of $item. Notice the '#' signifying that this is not a form element but just a value stored in the form array.
data hidden The serialized $item->data.
qty textfield The quantity of $item in the cart. When "Update cart" is clicked, the customer's input is saved to the cart.

Example:
<?php
function uc_product_cart_display($item){
 
$node = node_load($item->nid);
 
$element = array();
 
$element['nid'] = array('#type' => 'value', '#value' => $node->nid);
 
$element['module'] = array('#type' => 'value', '#value' => 'uc_product');
 
$element['remove'] = array('#type' => 'checkbox');

 

$element['title'] = array(
   
'#value' => node_access('view', $node) ? l($item->title, 'node/'. $node->nid) : check_plain($item->title),
  );

 

$context = array(
   
'revision' => 'altered',
   
'type' => 'cart_item',
   
'subject' => array(
     
'cart_item' => $item,
     
'node' => $node,
    ),
  );
 
$price_info = array(
   
'price' => $item->price,
   
'qty' => $item->qty,
  );

 

$element['#total'] = uc_price($price_info, $context);
 
$element['data'] = array('#type' => 'hidden', '#value' => serialize($item->data));
 
$element['qty'] = array(
   
'#type' => 'textfield',
   
'#default_value' => $item->qty,
   
'#size' => 5,
   
'#maxlength' => 6
 
);

  if (

$description = uc_product_get_description($item)) {
   
$element['description'] = array('#value' => $description);
  }

  return

$element;
}
?>