commerce_paypal-8.x-1.0-beta11/src/Plugin/Commerce/CheckoutPane/CheckoutPaymentProcess.php

src/Plugin/Commerce/CheckoutPane/CheckoutPaymentProcess.php
<?php

namespace Drupal\commerce_paypal\Plugin\Commerce\CheckoutPane;

use Drupal\commerce_payment\Plugin\Commerce\CheckoutPane\PaymentProcess;
use Drupal\commerce_paypal\Plugin\Commerce\PaymentGateway\CheckoutInterface;

/**
 * Provides the PayPal Checkout payment process pane.
 *
 * This extends the default "payment_process" pane which cannot work if the
 * "payment_information" pane isn't visible. This is only required in the
 * "shortcut" flow which is used in combination with the "paypal_checkout"
 * Checkout flow this module provides.
 *
 * @CommerceCheckoutPane(
 *   id = "paypal_checkout_payment_process",
 *   label = @Translation("PayPal Checkout payment process"),
 *   default_step = "payment"
 * )
 */
class CheckoutPaymentProcess extends PaymentProcess {

  /**
   * {@inheritdoc}
   */
  public function isVisible() {
    if ($this->order->isPaid() ||
      !$this->order->getTotalPrice() ||
      $this->order->getTotalPrice()->isZero()) {
      // No payment is needed if the order is free or has already been paid.
      return FALSE;
    }
    if ($this->checkoutFlow->getPluginId() !== 'paypal_checkout' ||
      empty($this->order->getData('commerce_paypal_checkout')) ||
      $this->order->get('payment_gateway')->isEmpty()) {
      return FALSE;
    }
    $checkout_data = $this->order->getData('commerce_paypal_checkout');
    /** @var \Drupal\commerce_payment\Entity\PaymentGatewayInterface $payment_gateway */
    $payment_gateway = $this->order->get('payment_gateway')->entity;
    return $checkout_data['flow'] === 'shortcut' && $payment_gateway->getPlugin() instanceof CheckoutInterface;
  }

  /**
   * Gets the step ID that the customer should be sent to on error.
   *
   * @return string
   *   The error step ID.
   */
  protected function getErrorStepId() {
    $visible_steps = $this->checkoutFlow->getVisibleSteps();
    return key($visible_steps);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc