You are here

protected function PaymentReferenceBase::getPluginSelector in Payment 8.2

Gets the plugin selector.

Parameters

mixed[] $element:

\Drupal\Core\Form\FormStateInterface $form_state:

Return value

\Drupal\plugin\Plugin\Plugin\PluginSelector\PluginSelectorInterface

5 calls to PaymentReferenceBase::getPluginSelector()
PaymentReferenceBase::buildCompletePaymentLink in src/Element/PaymentReferenceBase.php
Builds the "Complete payment" link.
PaymentReferenceBase::buildPaymentForm in src/Element/PaymentReferenceBase.php
Builds the payment form.
PaymentReferenceBase::buildRefreshButton in src/Element/PaymentReferenceBase.php
Builds the refresh button.
PaymentReferenceBase::elementValidate in src/Element/PaymentReferenceBase.php
Implements form API's element_validate callback.
PaymentReferenceBase::pay in src/Element/PaymentReferenceBase.php
Implements form submit handler.

File

src/Element/PaymentReferenceBase.php, line 535

Class

PaymentReferenceBase
Provides a base for payment reference elements.

Namespace

Drupal\payment\Element

Code

protected function getPluginSelector(array $element, FormStateInterface $form_state) {
  $key = 'payment_reference.element.payment_reference.plugin_selector.' . $element['#name'];
  if (!$form_state
    ->has($key)) {
    $plugin_selector = $this->pluginSelectorManager
      ->createInstance($element['#plugin_selector_id']);
    $payment_method_discovery = $this->paymentMethodType
      ->getPluginManager();
    if (!is_null($element['#limit_allowed_plugin_ids'])) {
      $payment_method_discovery = (new LimitedPluginDiscoveryDecorator($payment_method_discovery))
        ->setDiscoveryLimit($element['#limit_allowed_plugin_ids']);
    }
    $payment_method_manager = new PaymentExecutionPaymentMethodManager($this
      ->getPayment($element, $form_state), $this->currentUser, $this->paymentMethodType
      ->getPluginManager(), $payment_method_discovery);
    $plugin_selector
      ->setSelectablePluginType($this->paymentMethodType);
    $plugin_selector
      ->setSelectablePluginDiscovery($payment_method_manager);
    $plugin_selector
      ->setSelectablePluginFactory($payment_method_manager);
    $plugin_selector
      ->setRequired($element['#required']);
    $form_state
      ->set($key, $plugin_selector);
  }
  return $form_state
    ->get($key);
}