You are here

function pardot_webform_submit in Pardot Integration 7.2

Same name and namespace in other branches
  1. 6 pardot.module \pardot_webform_submit()
  2. 7 pardot.module \pardot_webform_submit()

Form submission handler for pardot_webform_form_alter().

Stores submissions for Pardot.

1 string reference to 'pardot_webform_submit'
pardot_webform_form_alter in pardot_webform/pardot_webform.module
Implements hook_form_alter().

File

pardot_webform/pardot_webform.module, line 87
Pardot Webform integration module.

Code

function pardot_webform_submit($form, &$form_state) {
  $values = array();

  // Get Browser headers.
  $values['user_headers'] = automate_get_user_headers();

  // Collapse form values so they make more sense to Pardot.
  $post_fields = automate_webform_values($form, $form_state);
  $values['post_fields'] = $post_fields;

  // Save the values and essential information to the database.
  $submission = new stdClass();
  $submission->form_nid = $form['#node']->nid;
  $submission->data = $values;
  pardot_webform_submission_save($submission);
  if (empty($submission->sid)) {
    $message = 'Unable to save submitted entry. <pre>!data</pre>';
    $vars = array(
      '!data' => var_export($submission, TRUE),
    );
    watchdog('pardot_webform', $message, $vars, WATCHDOG_NOTICE);
  }
  else {
    $form_settings = pardot_webform_load($submission->form_nid);
    $result = automate_map_webform_values($post_fields, $form_settings->data);
    $url = url($form_settings->url, array(
      'query' => $result,
    ));

    // Send data.
    $result = drupal_http_request($url, array(
      'timeout' => 5,
    ));
    if ($result->code == 200) {
      $submission->status = PARDOT_STATUS_UPLOADED;
      pardot_webform_submission_save($submission);
    }
    else {
      $submission->status = PARDOT_STATUS_FAILED;
      pardot_webform_submission_save($submission);
      $message = 'Unable to submit entry to Pardot. <pre>!data</pre>';
      $vars = array(
        '!data' => var_export($submission, TRUE),
      );
      watchdog('pardot_webform', $message, $result, WATCHDOG_ERROR);
    }
  }
}