You are here

public function Login::submitPaneForm in Commerce Core 8.2

Handles the submission of an pane form.

Parameters

array $pane_form: The pane form.

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

array $complete_form: The complete form structure.

Overrides CheckoutPaneBase::submitPaneForm

File

modules/checkout/src/Plugin/Commerce/CheckoutPane/Login.php, line 420

Class

Login
Provides the login pane.

Namespace

Drupal\commerce_checkout\Plugin\Commerce\CheckoutPane

Code

public function submitPaneForm(array &$pane_form, FormStateInterface $form_state, array &$complete_form) {
  $triggering_element = $form_state
    ->getTriggeringElement();
  $trigger = !empty($triggering_element['#op']) ? $triggering_element['#op'] : 'continue';
  switch ($trigger) {
    case 'continue':
      break;
    case 'login':
    case 'register':
      $storage = $this->entityTypeManager
        ->getStorage('user');

      /** @var \Drupal\user\UserInterface $account */
      $account = $storage
        ->load($form_state
        ->get('logged_in_uid'));
      user_login_finalize($account);
      $this->order
        ->setCustomer($account);
      $this->credentialsCheckFlood
        ->clearAccount($this->clientIp, $account
        ->getAccountName());
      break;
  }
  $form_state
    ->setRedirect('commerce_checkout.form', [
    'commerce_order' => $this->order
      ->id(),
    'step' => $this->checkoutFlow
      ->getNextStepId($this
      ->getStepId()),
  ]);
}