get('inline_entity_form') as &$widget_state) { $widget_state += ['entities' => [], 'delete' => []]; foreach ($widget_state['entities'] as $delta => $entity_item) { if (!empty($entity_item['entity']) && !empty($entity_item['needs_save'])) { /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */ $entity = $entity_item['entity']; $handler = InlineEntityForm::getInlineFormHandler($entity->getEntityTypeId()); $handler->save($entity); $widget_state['entities'][$delta]['needs_save'] = FALSE; } } /** @var \Drupal\Core\Entity\ContentEntityInterface $entities */ foreach ($widget_state['delete'] as $entity) { $entity->delete(); } unset($widget_state['delete']); } } }