2016-04-05 7 views
0
nicht aktualisiert

Ich benutze Ubercart 3 mit Drupal 7. Ich möchte benutzerdefinierte Werbebuchung für zusätzliche Bearbeitungsgebühren erstellen. Der folgende Code funktioniert einwandfrei, aber die zusätzliche Bearbeitungsmenge wird nicht mit der Summe addiert, sondern mit der Zwischensumme addiert.Gesamtauftrag für die benutzerdefinierte Werbebuchung

Was mache ich falsch?

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;  
    } 
} 

Antwort

0

Sie müssen hook_uc_line_item verwenden, um Ihre benutzerdefinierte Werbebuchung zu definieren. Zum Beispiel:

/** 
* Implements hook_uc_line_item(). 
*/ 

function mycustom_uc_line_item() { 
$items[] = array(
'id' => 'custom_package_charges', 
'title' => t('Custom text'), 
'weight' => 0, 
'default' => FALSE, 
'stored' => TRUE, 
'add_list' => TRUE, 
'calculated' => TRUE, 
); 
return $items; 
} 
Verwandte Themen