- public function setContributionSettings($value) {
- foreach (SettingsBag::getContributionInvoiceSettingKeys() as $possibleKeyName => $settingName) {
- $keyValue = $value[$possibleKeyName] ?? '';
- $this->set($settingName, $keyValue);
+ public function updateVirtual($key, $value) {
+ if ($key === 'contribution_invoice_settings') {
+ foreach (SettingsBag::getContributionInvoiceSettingKeys() as $possibleKeyName => $settingName) {
+ $keyValue = $value[$possibleKeyName] ?? '';
+ if ($possibleKeyName === 'invoicing' && is_array($keyValue)) {
+ $keyValue = $keyValue['invoicing'];
+ }
+ $this->set($settingName, $keyValue);
+ }
+ return TRUE;