public function WebformSame::preSave in Webform 6.x
Same name and namespace in other branches
- 8.5 src/Plugin/WebformElement/WebformSame.php \Drupal\webform\Plugin\WebformElement\WebformSame::preSave()
Acts on a webform submission element before the presave hook is invoked.
Parameters
array $element: An element.
\Drupal\webform\WebformSubmissionInterface $webform_submission: A webform submission.
Overrides WebformElementBase::preSave
File
- src/
Plugin/ WebformElement/ WebformSame.php, line 180
Class
- WebformSame
- Provides a 'webform_same' element.
Namespace
Drupal\webform\Plugin\WebformElementCode
public function preSave(array &$element, WebformSubmissionInterface $webform_submission) {
// Make sure destination is always sync'd when a webform submission
// is saved.
$webform = $webform_submission
->getWebform();
$same = $webform_submission
->getElementData($element['#webform_key']);
if (!$same) {
return;
}
$source = $element['#source'];
$destination = $element['#destination'];
// Make sure source and destination elements exist.
if (!$webform
->getElement($source) || !$webform
->getElement($destination)) {
return;
}
// Sync source data with destination data.
$source_data = $webform_submission
->getElementData($source);
$webform_submission
->setElementData($destination, $source_data);
}