You are here

public function VariationSKU::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/VariationSKU.php, line 68

Class

VariationSKU
Duplicate variation.

Namespace

Drupal\commerce_bulk\Plugin\Action

Code

public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
  if ($form_state
    ->getTriggeringElement()['#id'] != 'edit-cancel') {
    $storage = \Drupal::service('entity_type.manager')
      ->getStorage('commerce_product_variation');
    $skus = explode(PHP_EOL, trim($form_state
      ->getValue('skus')));
    $list = '';
    foreach ($form_state
      ->get('variations') as $index => $variation) {
      $sku = isset($skus[$index]) ? trim($skus[$index]) : FALSE;
      if ($sku && strlen($sku) < 61 && !$storage
        ->loadBySku($sku)) {
        $variation
          ->setSku($sku)
          ->save();
      }
      else {
        $list .= "<li>{$sku}</li>";
      }
    }
    if ($list) {
      \Drupal::messenger()
        ->addWarning(new TranslatableMarkup("<h3>The following SKUs were rejected as they already exist or more than 60 characters:</h3><ul>{$list}</ul>"));
    }
  }
}