You are here

public function wf_crm_webform_postprocess::postSave in Webform CiviCRM Integration 7.4

Same name and namespace in other branches
  1. 7.5 includes/wf_crm_webform_postprocess.inc \wf_crm_webform_postprocess::postSave()

Process webform submission after it is has been saved. Called by the following hooks:

Parameters

stdClass $submission:

See also

webform_civicrm_webform_submission_insert

webform_civicrm_webform_submission_update

File

includes/wf_crm_webform_postprocess.inc, line 213

Class

wf_crm_webform_postprocess

Code

public function postSave($submission) {
  $this->submission = $submission;
  if (empty($this->submission->is_draft)) {

    // Save cases
    if (!empty($this->data['case']['number_of_case'])) {
      $this
        ->processCases();
    }

    // Save activities
    if (!empty($this->data['activity']['number_of_activity'])) {
      $this
        ->processActivities();
    }

    // Save grants
    if (isset($this->data['grant']['number_of_grant'])) {
      $this
        ->processGrants();
    }

    // Save contribution custom data & line-items
    if (!empty($this->ent['contribution'][1]['id'])) {
      $this
        ->processContribution();
    }
  }

  // Write record; we do this when creating, updating, or saving a draft of a webform submission.
  $record = $this
    ->formatSubmission();
  drupal_write_record('webform_civicrm_submissions', $record, $this->update);

  // Calling an IPN payment processor will result in a redirect so this happens after everything else
  if (empty($this->submission->is_draft) && !empty($this->ent['contribution'][1]['id']) && $this->contributionIsIncomplete && !$this->contributionIsPayLater) {
    webform_submission_send_mail($this->node, $this->submission);
    $this
      ->submitIPNPayment();
  }

  // Send receipt
  if (empty($this->submission->is_draft) && !empty($this->ent['contribution'][1]['id']) && !empty($this->contribution_page['is_email_receipt']) && (!$this->contributionIsIncomplete || $this->contributionIsPayLater)) {
    $this
      ->sendReceipt();
  }
}