diff --git a/modules/os2forms_forloeb/src/Plugin/EngineTasks/MaestroWebformInheritTask.php b/modules/os2forms_forloeb/src/Plugin/EngineTasks/MaestroWebformInheritTask.php index b04137ce..6746cd3b 100644 --- a/modules/os2forms_forloeb/src/Plugin/EngineTasks/MaestroWebformInheritTask.php +++ b/modules/os2forms_forloeb/src/Plugin/EngineTasks/MaestroWebformInheritTask.php @@ -2,9 +2,11 @@ namespace Drupal\os2forms_forloeb\Plugin\EngineTasks; +use Drupal\Component\Utility\NestedArray; use Drupal\Core\Form\FormStateInterface; use Drupal\maestro\Engine\MaestroEngine; use Drupal\maestro_webform\Plugin\EngineTasks\MaestroWebformTask; +use Drupal\webform\Entity\Webform; use Drupal\webform\Entity\WebformSubmission; use Drupal\webform\Utility\WebformArrayHelper; @@ -152,9 +154,15 @@ public static function webformSubmissionFormAlter(array &$form, FormStateInterfa if ('webform_submission' === ($entityIdentifier['entity_type'] ?? NULL)) { $submission = WebformSubmission::load($entityIdentifier['entity_id']); $data = $submission->getData(); - foreach ($data as $key => $value) { - if (isset($form['elements'][$key])) { - $form['elements'][$key]['#default_value'] = $value; + + // The target element may be hidden inside nested elements on the form. + if ($targetWebform = Webform::load($form['#webform_id'] ?? NULL)) { + foreach ($data as $key => $value) { + if ($targetElement = $targetWebform->getElement($key)) { + if ($element = &NestedArray::getValue($form['elements'], $targetElement['#webform_parents'])) { + $element['#default_value'] = $value; + } + } } } }