public function Webform::deleteElement in Webform 8.5
Same name and namespace in other branches
- 6.x src/Entity/Webform.php \Drupal\webform\Entity\Webform::deleteElement()
Remove an element.
Parameters
string $key: The element's key.
Overrides WebformInterface::deleteElement
File
- src/
Entity/ Webform.php, line 1929
Class
- Webform
- Defines the webform entity.
Namespace
Drupal\webform\EntityCode
public function deleteElement($key) {
$element = $this
->getElementDecoded($key);
// Delete element from the elements render array.
$elements = $this
->getElementsDecoded();
$sub_element_keys = $this
->deleteElementRecursive($elements, $key);
$this
->setElements($elements);
// Delete the variants.
$is_variant = isset($element['#type']) && $element['#type'] === 'webform_variant';
if ($is_variant) {
$variants = $this
->getVariants(NULL, NULL, $key);
foreach ($variants as $variant) {
$this
->deleteWebformVariant($variant);
}
}
// Delete submission element key data.
\Drupal::database()
->delete('webform_submission_data')
->condition('webform_id', $this
->id())
->condition('name', $sub_element_keys, 'IN')
->execute();
}