You are here

function commerce_webform_entity_view in Commerce Webform 8

Same name and namespace in other branches
  1. 7.2 commerce_webform.module \commerce_webform_entity_view()
  2. 7 commerce_webform.module \commerce_webform_entity_view()

Implements hook_entity_view().

File

./commerce_webform.module, line 492
Commerce Webform module file

Code

function commerce_webform_entity_view($order, $type, $view_mode, $langcode) {
  $submissions = array();
  if ($type == 'commerce_order' && $order->type == 'commerce_order') {
    global $user;
    $order_wrapper = entity_metadata_wrapper('commerce_order', $order);
    foreach ($order_wrapper->commerce_line_items
      ->value() as $line_item) {
      if (isset($line_item->commerce_webform_sid)) {
        $line_item_wrapper = entity_metadata_wrapper('commerce_line_item', $line_item);
        $sid = $line_item_wrapper->commerce_webform_sid
          ->value();
        $nid = $line_item_wrapper->commerce_webform_nid
          ->value();
        if ($sid > 0 && $nid > 0 && !isset($submissions["{$nid}:{$sid}"])) {
          module_load_include('inc', 'webform', 'includes/webform.submissions');
          $sub = webform_get_submission($nid, $sid);
          if (user_access('access all webform results') || user_access('access own webform submissions') && $sub->uid == $user->uid) {

            // If the user has access to this submission, print the details.
            $submissions["{$nid}:{$sid}"] = array(
              'node' => node_load($nid),
              'submission' => $sub,
            );
          }
        }
      }
    }
    if (!empty($submissions)) {
      $order->content['commerce_webform_order_view'] = array();
      foreach ($submissions as $id => $submission) {
        $node = $submission['node'];
        $sub = $submission['submission'];
        $link = l(t('View submission on webform %title', array(
          '%title' => $node->title,
        )), "node/{$node->nid}/submission/{$sub->sid}", array(
          'html' => TRUE,
        ));
        $order->content['commerce_webform_order_view'][$id]['webform_link'] = array(
          '#prefix' => '<label>',
          '#markup' => t('Webform submission (!link):', array(
            '!link' => $link,
          )),
          '#suffix' => '</label>',
        );
        $order->content['commerce_webform_order_view'][$id]['webform_rendered'] = webform_submission_render($node, $sub, NULL, 'html');
        $order->content['commerce_webform_order_view'][$id]['webform_rendered'] += array(
          '#prefix' => '<div class="webform-submission">',
          '#suffix' => '</div>',
        );
      }
    }
  }
}