You are here

function uc_webform_order in Ubercart Webform Integration 6

Implementation of hook_order().

File

./uc_webform.module, line 586
Provides components to the Webform module utilizing the Ubercart package.

Code

function uc_webform_order($op, &$arg1, $arg2) {
  switch ($op) {
    case 'submit':
      foreach ($arg1->products as $product) {
        if (isset($product->data['webform_sid'])) {
          if (is_numeric($product->data['webform_nid'])) {
            $node = node_load($product->data['webform_nid']);
            if (isset($node->title)) {
              $title = filter_xss($node->title);
            }
          }
          if ($title == '') {
            $message = l(t('View form submission @!sid', array(
              '@sid' => $product->data['webform_sid'],
            )), 'node/' . $product->data['webform_nid'] . '/submission/' . $product->data['webform_sid']);
          }
          else {
            $message = l(t('View form submission #@sid: @title', array(
              '@sid' => $product->data['webform_sid'],
              '@title' => $title,
            )), 'node/' . $product->data['webform_nid'] . '/submission/' . $product->data['webform_sid']);
          }

          // Add an admin comment that links to the webform submission.
          uc_order_comment_save($arg1->order_id, $arg1->uid, $message, 'admin');
        }
      }
      break;
    case 'update':
      foreach ($arg1->products as $product) {
        if (isset($product->data['webform_sid'])) {

          // Update the hidden Order Status field of the webform submission.
          $status = t('Order #') . $arg1->order_id . ': ' . drupal_strtoupper($arg2);
          $webform_node = node_load($product->data['webform_nid']);
          $webform_submission = webform_menu_submission_load($product->data['webform_sid'], $product->data['webform_nid']);
          if (count($webform_node->webform['components']) && $webform_submission) {
            foreach ($webform_node->webform['components'] as $component) {
              if ($component['form_key'] == 'order_status') {
                $webform_submission->data[$component['cid']]['value'][0] = $status;
                webform_submission_update($webform_node, $webform_submission);
              }
            }
          }
        }
      }
      break;
  }
}