function webform_civicrm_update_8001 in Webform CiviCRM Integration 8.5
Update receipt setting as per the value set in the contribution page.
File
- ./
webform_civicrm.install, line 149 - Webform CiviCRM module's install, uninstall and upgrade code.
Code
function webform_civicrm_update_8001() {
\Drupal::service('civicrm')
->initialize();
$utils = \Drupal::service('webform_civicrm.utils');
$webforms = Webform::loadMultiple();
foreach ($webforms as $webform) {
$handler = $webform
->getHandlers('webform_civicrm');
$config = $handler
->getConfiguration();
if (empty($config['webform_civicrm'])) {
continue;
}
$contribution = wf_crm_aval($config, "webform_civicrm:settings:data:contribution:1:contribution:1", []);
if (!empty($contribution['contribution_page_id'])) {
$returnParams = [
"financial_type_id",
"currency",
"bcc_receipt",
"cc_receipt",
"receipt_text",
"pay_later_receipt",
"receipt_from_name",
"receipt_from_email",
"is_email_receipt",
];
$contribution_page = current($utils
->wf_crm_apivalues('ContributionPage', 'get', [
'return' => $returnParams,
'id' => $contribution['contribution_page_id'],
]));
$settings =& $config['webform_civicrm']['settings'];
$settings['civicrm_1_contribution_1_contribution_enable_contribution'] = $settings['data']['contribution'][1]['contribution'][1]["enable_contribution"] = 1;
unset($settings['data']['contribution'][1]['contribution'][1]["contribution_page_id"]);
$settings['civicrm_1_contribution_1_contribution_financial_type_id'] = $settings['data']['contribution'][1]['contribution'][1]["financial_type_id"] = $contribution_page['financial_type_id'] ?? '';
$settings['contribution_1_settings_currency'] = $settings['data']['contribution'][1]['currency'] = $contribution_page['currency'] ?? '';
if (!empty($contribution_page['is_email_receipt'])) {
$settings['receipt_1_number_of_receipt'] = $settings['data']['receipt']['number_number_of_receipt'] = 1;
$receiptValues = [
'cc_receipt',
'bcc_receipt',
'receipt_text',
'pay_later_receipt',
'receipt_from_name',
'receipt_from_email',
];
foreach ($receiptValues as $val) {
$settings["receipt_1_number_of_receipt_{$val}"] = $settings['data']['receipt']["number_number_of_receipt_{$val}"] = $contribution_page[$val] ?? '';
}
}
$handler
->setConfiguration($config);
$webform
->save();
}
}
}