You are here

protected function CommerceBundleEntityFormBase::submitTraitForm in Commerce Core 8.2

Submits the trait form.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

5 calls to CommerceBundleEntityFormBase::submitTraitForm()
OrderItemTypeForm::save in modules/order/src/Form/OrderItemTypeForm.php
Form submission handler for the 'save' action.
OrderTypeForm::save in modules/order/src/Form/OrderTypeForm.php
Form submission handler for the 'save' action.
ProductTypeForm::save in modules/product/src/Form/ProductTypeForm.php
Form submission handler for the 'save' action.
ProductVariationTypeForm::save in modules/product/src/Form/ProductVariationTypeForm.php
Form submission handler for the 'save' action.
StoreTypeForm::save in modules/store/src/Form/StoreTypeForm.php
Form submission handler for the 'save' action.

File

src/Form/CommerceBundleEntityFormBase.php, line 152

Class

CommerceBundleEntityFormBase

Namespace

Drupal\commerce\Form

Code

protected function submitTraitForm(array $form, FormStateInterface $form_state) {
  $target_entity_type_id = $this->entity
    ->getEntityType()
    ->getBundleOf();

  /** @var \Drupal\commerce\Entity\CommerceBundleEntityInterface $entity */
  $entity = $this->entity;
  $traits = $entity
    ->getTraits();
  $original_traits = $form_state
    ->getValue('original_traits');
  $selected_traits = array_diff($traits, $original_traits);
  $unselected_traits = array_diff($original_traits, $traits);
  foreach ($selected_traits as $trait_id) {
    $trait = $this->traitManager
      ->createInstance($trait_id);
    $this->traitManager
      ->installTrait($trait, $target_entity_type_id, $this->entity
      ->id());
  }
  foreach ($unselected_traits as $trait_id) {
    $trait = $this->traitManager
      ->createInstance($trait_id);
    $this->traitManager
      ->uninstallTrait($trait, $target_entity_type_id, $this->entity
      ->id());
  }
}