You are here

public function OrderAddForm::submitForm in Commerce Core 8.2

Form submission handler.

Parameters

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

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

Overrides FormInterface::submitForm

File

modules/order/src/Form/OrderAddForm.php, line 121

Class

OrderAddForm
Provides the order add form.

Namespace

Drupal\commerce_order\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $this
    ->submitCustomerForm($form, $form_state);
  $values = $form_state
    ->getValues();
  $order_data = [
    'type' => $values['type'],
    'mail' => $values['mail'],
    'uid' => [
      $values['uid'],
    ],
    'store_id' => [
      $values['store_id'],
    ],
  ];
  if (!empty($values['custom_placed_date']) && !empty($values['placed'])) {
    $order_data['placed'] = $values['placed']
      ->getTimestamp();
  }
  $order = $this->orderStorage
    ->create($order_data);
  $order
    ->save();
  $values['order_id'] = $order
    ->id();
  $form_state
    ->setValues($values);

  // Redirect to the edit form to complete the order.
  $form_state
    ->setRedirect('entity.commerce_order.edit_form', [
    'commerce_order' => $order
      ->id(),
  ]);
}