Adding "Price" field to Ubercart cart page
Table of Contents
On the /cart page of Ubercart store, you can usually see such fields:
That's total price per row, and amount of products per row.
For a customer project, I wanted to add single item price to this page, to make it look like this:
After some digging into Ubercart code, that task was solved in ~10 lines (put these lines in your module): t('Price'), 'weight' => 2.5, ); foreach (element_children($table) as $key) { if (empty($table[$key]['nid']['#value'])) continue; // This db-expensive node_load call can be easily avoided by using // single SQL select. But, // that's not so important if visitor usually adds 1-5 products to cart. $n = node_load($table[$key]['nid']['#value']); $p = uc_price($n -> sell_price, array()); // Add data to our new column $table[$key]['price_item'] = array( '#value' => $p, '#cell_attributes' => array('class' =>'price-item') ); }} ?>
That's so easy because Ubercart uses Tapir table builder for most important tables (like cart page) and we can use Drupal hooks to extend them!