You are here

function commerce_donate_checkout_pane_checkout_form_submit in Commerce Donate 7

Add the additional donation as a line item to the cart.

File

includes/commerce_donate.checkout_pane.inc, line 176
Contains callback functions for the commerce_donate checkout pane.

Code

function commerce_donate_checkout_pane_checkout_form_submit($form, &$form_state, $checkout_pane, $order) {
  $pane_id = $checkout_pane['pane_id'];
  $pane_values = $form_state['values'];

  // No donation pane, or perhaps product, available.
  if (empty($form_state['donate_line_item']) || empty($pane_values[$pane_id])) {
    return;
  }
  $line_item = $form_state['donate_line_item'];
  $language = $form_state['language'];
  $amount = !empty($pane_values[$pane_id]['commerce_donate_amount'][$language][0]['value']) ? $pane_values[$pane_id]['commerce_donate_amount'][$language][0]['value'] : 0;
  if (!empty($amount)) {
    field_attach_submit('commerce_line_item', $line_item, $form[$pane_id], $form_state);
    $product_id = variable_get('commerce_donate_checkout_pane_product_id', 0);
    if (!empty($product_id) && !empty($amount) && !empty($order)) {
      $product = commerce_product_load($product_id);
      $line_item->line_item_label = $product->sku;

      // Save the line item and add it to the cart.
      commerce_line_item_save($line_item);
      commerce_cart_product_add($order->uid, $line_item, FALSE);
    }
  }
}