/**
  * {@inheritdoc}
  */
 public function buildForm(OrderInterface $order, array $form, FormStateInterface $form_state)
 {
     $options = array();
     $methods = PaymentMethod::loadMultiple();
     uasort($methods, 'Drupal\\uc_payment\\Entity\\PaymentMethod::sort');
     foreach ($methods as $method) {
         $options[$method->id()] = $method->label();
     }
     $form['payment_method'] = array('#type' => 'select', '#title' => $this->t('Payment method'), '#default_value' => $order->getPaymentMethodId(), '#options' => $options, '#ajax' => array('callback' => array($this, 'ajaxCallback'), 'progress' => array('type' => 'throbber'), 'wrapper' => 'payment-details'));
     $form['payment_details'] = array('#tree' => TRUE, '#prefix' => '<div id="payment-details">', '#suffix' => '</div>');
     $method = $form_state->getValue('payment_method') ?: $order->getPaymentMethodId();
     if ($method && ($details = PaymentMethod::load($method)->getPlugin()->orderEditDetails($order))) {
         if (is_array($details)) {
             $form['payment_details'] += $details;
         } else {
             $form['payment_details']['#markup'] = $details;
         }
     }
     return $form;
 }
 /**
  * Returns an instance of the payment method plugin for a specific order.
  *
  * @param \Drupal\uc_order\OrderInterface $order
  *   The order from which the plugin should be instantiated.
  *
  * @return \Drupal\uc_payment\PaymentMethodPluginInterface
  *   A fully configured plugin instance.
  */
 public function createFromOrder(OrderInterface $order)
 {
     return PaymentMethod::load($order->getPaymentMethodId())->getPlugin();
 }
Exemple #3
0
 public function getPaymentPluginId($uc_payment_methodId)
 {
     return PaymentMethod::load($uc_payment_methodId)->getPlugin()->getPluginId();
 }