You are here

function commerce_gc_product_pane_checkout_form in Commerce GC 7

File

modules/commerce_gc_product/includes/commerce_gc_product.checkout_pane.inc, line 11
Provides Commerce Checkout pane functionality for giftcards.

Code

function commerce_gc_product_pane_checkout_form($form, &$form_state, $checkout_pane, $order) {
  $order_wrapper = entity_metadata_wrapper('commerce_order', $order);
  $pane_form = array();

  // Find line items that contain giftcard products
  foreach ($order_wrapper->commerce_line_items as $line_item_wrapper) {
    if ($line_item_wrapper
      ->value() && in_array($line_item_wrapper->type
      ->value(), commerce_gc_product_giftcard_line_item_types())) {

      // Generate a container.
      if (!isset($pane_form)) {
        $pane_form = array();
      }
      $line_item = $line_item_wrapper
        ->value();
      $line_item_id = $line_item->line_item_id;
      $label = $line_item_wrapper->commerce_product->title
        ->value();

      // Build an entity form for this line item.
      $pane_form[$line_item_id]['line_item_fields'] = array(
        '#type' => 'fieldset',
        '#title' => check_plain($label),
        '#parents' => array(
          $line_item_id,
          'commerce_gc_product',
        ),
      );
      $line_item_form =& $pane_form[$line_item_id]['line_item_fields'];
      field_attach_form('commerce_line_item', $line_item, $line_item_form, $form_state);

      // Remove any fields that haven't been marked for inclusion on the
      // add-to-cart form.
      foreach (element_children($line_item_form) as $field_name) {
        $info = field_info_instance('commerce_line_item', $field_name, $line_item->type);
        $line_item_form[$field_name]['#commerce_cart_settings'] = commerce_cart_field_instance_access_settings($info);
        if (empty($line_item_form[$field_name]['#commerce_cart_settings']['field_access'])) {
          $line_item_form[$field_name]['#access'] = FALSE;
        }
      }
    }
  }
  return $pane_form;
}