You are here

public function PayPalBasicDeriver::getDerivativeDefinitions in PayPal for Payment 8

Same name and namespace in other branches
  1. 2.0.x src/Plugin/Payment/Method/PayPalBasicDeriver.php \Drupal\paypal_payment\Plugin\Payment\Method\PayPalBasicDeriver::getDerivativeDefinitions()

Gets the definition of all derivatives of a base plugin.

Parameters

array $base_plugin_definition: The definition array of the base plugin.

Return value

array An array of full derivative definitions keyed on derivative id.

Overrides BasicDeriver::getDerivativeDefinitions

See also

getDerivativeDefinition()

File

src/Plugin/Payment/Method/PayPalBasicDeriver.php, line 22

Class

PayPalBasicDeriver
Abstract class for PayPal payment method derivers.

Namespace

Drupal\paypal_payment\Plugin\Payment\Method

Code

public function getDerivativeDefinitions($base_plugin_definition) {

  /** @var \Drupal\payment\Entity\PaymentMethodConfigurationInterface[] $payment_methods */
  $payment_methods = $this->paymentMethodConfigurationStorage
    ->loadMultiple();
  foreach ($payment_methods as $payment_method) {
    if ($payment_method
      ->getPluginId() === $this
      ->getId()) {

      /** @var \Drupal\paypal_payment\Plugin\Payment\MethodConfiguration\PayPalBasic $configuration_plugin */
      $configuration_plugin = $this->paymentMethodConfigurationManager
        ->createInstance($payment_method
        ->getPluginId(), $payment_method
        ->getPluginConfiguration());
      $this->derivatives[$payment_method
        ->id()] = [
        'id' => $base_plugin_definition['id'] . ':' . $payment_method
          ->id(),
        'active' => $payment_method
          ->status(),
        'label' => $configuration_plugin
          ->getBrandLabel() ?: $payment_method
          ->label(),
        'message_text' => $configuration_plugin
          ->getMessageText(),
        'message_text_format' => $configuration_plugin
          ->getMessageTextFormat(),
        'execute_status_id' => $configuration_plugin
          ->getExecuteStatusId(),
        'capture' => $configuration_plugin
          ->getCapture(),
        'capture_status_id' => $configuration_plugin
          ->getCaptureStatusId(),
        'refund' => $configuration_plugin
          ->getRefund(),
        'refund_status_id' => $configuration_plugin
          ->getRefundStatusId(),
      ] + $configuration_plugin
        ->getDerivativeConfiguration() + $base_plugin_definition;
    }
  }
  return $this->derivatives;
}