未自定义订单项的订单总计

时间:2016-04-05 07:49:14

标签: drupal drupal-7 drupal-modules ubercart

我正在使用ubercart 3和drupal 7.我想创建自定义订单项以获取额外的处理费用。下面的代码工作正常,但额外的处理量不会与总数相加,但会添加小计。

我做错了什么?

 function mycustom_uc_order($op, $order, $arg2) {
 switch ($op) {
 case 'save':   
  $package_lineitem_id = $ups_charges = $package_lineitem_index = '';
  $line_items = uc_order_load_line_items($order);
  foreach ($line_items as $key => $line_item) {
    if ($line_item['type'] == 'shipping' && $line_item['amount'] != '') {
      $ups_charges = $line_item['line_item_id'];
    } elseif($line_item['type'] == 'custom_package_charges'){
      $package_lineitem_id = $line_item['line_item_id'];
      $package_lineitem_index = $key;
    }
  }        
      $pack_charges = 5; 
    // If packaging charges line item exists update else create a new one
    if(empty($package_lineitem_id)){
      $order->line_items[] = uc_order_line_item_add($order->order_id, 'custom_package_charges', 'Additional Handling Charges for Packaging', $pack_charges,5);
    } else { 
      uc_order_update_line_item($package_lineitem_id, 'Additional Handling Charges for Packaging', $pack_charges);
      $order->line_items[$package_lineitem_index]['amount'] = $pack_charges;
    }   

  break;    
  }
}

1 个答案:

答案 0 :(得分:0)

您需要使用hook_uc_line_item来定义自定义订单项。例如: / ** *实现hook_uc_line_item()。 * / function mycustom_uc_line_item(){ $ items [] = array(  ' ID' => ' custom_package_charges&#39 ;,  '标题' => t('自定义文字'),  '重量' => 0,  '默认' =>假,  '存储' =>真正,  ' add_list' =>真正,  '计算' =>真正, ); 返回$ items; }