You are here

public function VariationDelete::submitConfigurationForm in Commerce Bulk 8

Form submission handler.

Parameters

array $form: An associative array containing the structure of the plugin form as built by static::buildConfigurationForm().

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form. Calling code should pass on a subform state created through \Drupal\Core\Form\SubformState::createForSubform().

Overrides PluginFormInterface::submitConfigurationForm

File

src/Plugin/Action/VariationDelete.php, line 78

Class

VariationDelete
Delete variations.

Namespace

Drupal\commerce_bulk\Plugin\Action

Code

public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
  if ($form_state
    ->getTriggeringElement()['#id'] != 'edit-cancel') {
    if ($seleted_variations = $form_state
      ->get('variations')) {
      $product = $form_state
        ->get('product');
      $variations = $product
        ->getVariations();
      foreach ($variations as $index => $variation) {
        if (in_array($variation, $seleted_variations)) {
          unset($variations[$index]);
          $variation
            ->delete();
        }
      }
      $product
        ->setVariations(array_values($variations))
        ->save();
    }
  }
}