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;
}
}