--- uc_recurring_order.module	2010-03-30 21:26:10.000000000 -0700
+++ NEW uc_recurring_order.module	2010-04-14 03:32:34.000000000 -0700
@@ -30,7 +30,8 @@ function uc_recurring_order_menu() {
  */
 function uc_recurring_order_settings_form($form_state) {
   drupal_set_title(t('Recurring Order Settings'));
-  $intoptions = _uc_recurring_order_recurring_options();
+  $intoptions = _uc_recurring_order_recurring_options();  
+  
   $form['pane_settings'] = array(
     '#type' => 'fieldset',
     '#title' => t('Pane Text Settings'),
@@ -59,6 +60,14 @@ function uc_recurring_order_settings_for
     '#default_value' => variable_get('uc_recurring_order_interval_options', $intoptions),
     '#title' => t('Available Recurring Interval Options'),
   );
+  $form['line_items'] = array(
+    '#type' => 'select',
+    '#multiple' => TRUE,
+    '#options' => uc_recurring_order_line_items(),
+    '#title' => t('Line items'),
+    '#description' => t("Select which line items you'd like to appear on recurring orders."),
+    '#default_value' => variable_get('uc_recurring_order_line_items', uc_recurring_order_line_items()),
+  );
 
   $form['submit'] = array(
     '#type' => 'submit',
@@ -77,6 +86,26 @@ function uc_recurring_order_settings_for
   variable_set('uc_recurring_pane_description', check_plain($form_state['values']['uc_recurring_order_pane_description']));
   variable_set('uc_recurring_order_pane_title', check_plain($form_state['values']['uc_recurring_order_pane_title']));
   variable_set('uc_recurring_order_pane_empty', check_plain($form_state['values']['uc_recurring_order_pane_empty']));
+  $lineitems = array();
+  foreach ($form_state['values']['line_items'] as $item) {
+    $lineitems[check_plain($item)] = $item;
+  }
+  variable_set('uc_recurring_order_line_items', $lineitems);
+}
+
+function uc_recurring_order_line_items() {
+  $lineitems = array();
+  $items = _line_item_list();
+  foreach ($items as $line) {
+    if ($line['add_list'] === TRUE) {
+      if ($line['id'] == 'generic') {
+        $lineitems[$line['id']] = 'Generic Line Item';
+      } else {
+        $lineitems[$line['id']] = check_plain($line['title']);
+      }
+    }
+  }
+  return $lineitems;
 }
 
 
@@ -334,7 +363,9 @@ function uc_recurring_order_recurring_re
     $order->products = $fee->data['uc_recurring_order']['products'];
     $result = db_query("SELECT * FROM {uc_order_line_items} WHERE order_id = %d", $fee->order_id);
     while ($line_item = db_fetch_array($result)) {
-      uc_order_line_item_add($order->order_id, $line_item['type'], $line_item['title'], $line_item['amount'], $line_item['weight'], $line_item['data']);
+      if (in_array($line_item['type'], variable_get('uc_recurring_order_line_items', uc_recurring_order_line_items()))) { 
+        uc_order_line_item_add($order->order_id, $line_item['type'], $line_item['title'], $line_item['amount'], $line_item['weight'], $line_item['data']);
+      }  
     }
   }
 }
