You are here

function commerce_webform_entity_view in Commerce Webform 7

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

Implements hook_entity_view().

File

./commerce_webform.module, line 482
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'];
        $order->content['commerce_webform_order_view'][$id]['#markup'] = l(t('View webform submission on webform %title', array(
          '%title' => $node->title,
        )), "node/{$node->nid}/submission/{$sub->sid}", array(
          'html' => TRUE,
        )) . webform_submission_render($node, $sub, NULL, 'html');
      }
    }
  }
}