public function WebformCivicrmPostProcess::postSave in Webform CiviCRM Integration 8.5
Process webform submission after it is has been saved. Called by the following hooks:
Parameters
stdClass $submission:
Overrides WebformCivicrmPostProcessInterface::postSave
See also
webform_civicrm_webform_submission_insert
webform_civicrm_webform_submission_update
File
- src/
WebformCivicrmPostProcess.php, line 277 - Front-end form validation and post-processing.
Class
Namespace
Drupal\webform_civicrmCode
public function postSave(WebformSubmissionInterface $webform_submission) {
$this->submission = $webform_submission;
if (empty($this->submission
->isDraft())) {
// 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 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();
$this->database
->merge('webform_civicrm_submissions')
->key('sid', $record['sid'])
->fields($record)
->execute();
// Calling an IPN payment processor will result in a redirect so this happens after everything else
if ($this->contributionIsIncomplete && !$this->contributionIsPayLater && !empty($this->ent['contribution'][1]['id']) && !$this->submission
->isDraft()) {
// webform_submission_send_mail($this->node, $this->submission);
$this
->submitIPNPayment();
}
$isEmailReceipt = wf_crm_aval($this->data, "receipt:number_number_of_receipt", FALSE);
// Send receipt
if (empty($this->submission
->isDraft()) && !empty($this->ent['contribution'][1]['id']) && !empty($isEmailReceipt) && (!$this->contributionIsIncomplete || $this->contributionIsPayLater)) {
$this
->sendReceipt();
}
}