You are here

public function Payment::setPaymentStatuses in Payment 8.2

Sets/replaces all statuses without notifications.

Parameters

\Drupal\payment\Plugin\Payment\Status\PaymentStatusInterface[] $payment_statuses:

Return value

\Drupal\payment\Entity\PaymentInterface

Overrides PaymentInterface::setPaymentStatuses

File

src/Entity/Payment.php, line 219

Class

Payment
Defines a payment entity.

Namespace

Drupal\payment\Entity

Code

public function setPaymentStatuses(array $payment_statuses) {
  $payment_status_list = $this
    ->get('payment_statuses');

  // Remove all existing field items.
  foreach ($payment_status_list as $index => $payment_status) {
    $payment_status_list
      ->removeItem($index);
  }

  // Set each individual new status.

  /** @var \Drupal\payment\Plugin\Payment\Status\PaymentStatusInterface[] $payment_statuses */
  foreach ($payment_statuses as $payment_status) {
    $payment_status
      ->setPayment($this);
    $payment_status_list
      ->appendItem($payment_status);
  }
  return $this;
}