class PaymentReferenceForm in Commerce PayPal 8
Class PaymentReferenceForm.
@package Drupal\commerce_paypal\PluginForm
Hierarchy
- class \Drupal\Core\Plugin\PluginFormBase implements PluginAwareInterface, PluginFormInterface
- class \Drupal\commerce_payment\PluginForm\PaymentGatewayFormBase implements PaymentGatewayFormInterface uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\commerce_paypal\PluginForm\PaymentReferenceForm implements ContainerInjectionInterface
- class \Drupal\commerce_payment\PluginForm\PaymentGatewayFormBase implements PaymentGatewayFormInterface uses DependencySerializationTrait, StringTranslationTrait
Expanded class hierarchy of PaymentReferenceForm
File
- src/
PluginForm/ PaymentReferenceForm.php, line 17
Namespace
Drupal\commerce_paypal\PluginFormView source
class PaymentReferenceForm extends PaymentGatewayFormBase implements ContainerInjectionInterface {
/**
* The currency formatter.
*
* @var \CommerceGuys\Intl\Formatter\CurrencyFormatterInterface
*/
protected $currencyFormatter;
/**
* Constructs a new PaymentReferenceForm object.
*
* @param \CommerceGuys\Intl\Formatter\CurrencyFormatterInterface $currency_formatter
* Currency formatter service.
*/
public function __construct(CurrencyFormatterInterface $currency_formatter) {
$this->currencyFormatter = $currency_formatter;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('commerce_price.currency_formatter'));
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
/** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
$payment = $this->entity;
$form['#success_message'] = $this
->t('Reference transaction processed successfully.');
/** @var \Drupal\commerce_order\Entity\OrderInterface $order */
$order = $payment
->getOrder();
$balance = $order
->getBalance();
$formatted_balance = $this->currencyFormatter
->format($balance
->getNumber(), $balance
->getCurrencyCode());
$description = $this
->t('Order balance: @balance', [
'@balance' => $formatted_balance,
]);
$form['amount'] = [
'#type' => 'commerce_price',
'#title' => $this
->t('Capture amount'),
'#default_value' => $payment
->getBalance()
->toArray(),
'#required' => TRUE,
'#available_currencies' => [
$payment
->getAmount()
->getCurrencyCode(),
],
'#description' => $description,
];
return $form;
}
/**
* {@inheritdoc}
*/
public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
/** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
$payment = $this->entity;
// If the transaction has expired, display an error message and redirect.
if ($payment
->getCompletedTime() && $payment
->getCompletedTime() < strtotime('-365 days')) {
$form_state
->setError($form, $this
->t('This transaction has passed its 365 day limit and can no longer be used for reference transactions.'));
}
}
/**
* {@inheritdoc}
*/
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
$values = $form_state
->getValue($form['#parents']);
$amount = Price::fromArray($values['amount']);
/** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
$payment = $this->entity;
/** @var \Drupal\commerce_paypal\Plugin\Commerce\PaymentGateway\PayflowLinkInterface $payment_gateway_plugin */
$payment_gateway_plugin = $this->plugin;
$payment_gateway_plugin
->referencePayment($payment, $amount);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
PaymentGatewayFormBase:: |
protected | property | The form entity. | |
PaymentGatewayFormBase:: |
public | function |
Gets the form entity. Overrides PaymentGatewayFormInterface:: |
|
PaymentGatewayFormBase:: |
public | function |
Gets the form element to which errors should be assigned. Overrides PaymentGatewayFormInterface:: |
1 |
PaymentGatewayFormBase:: |
public | function |
Sets the form entity. Overrides PaymentGatewayFormInterface:: |
|
PaymentReferenceForm:: |
protected | property | The currency formatter. | |
PaymentReferenceForm:: |
public | function |
Form constructor. Overrides PluginFormInterface:: |
|
PaymentReferenceForm:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
|
PaymentReferenceForm:: |
public | function |
Form submission handler. Overrides PluginFormInterface:: |
|
PaymentReferenceForm:: |
public | function |
Form validation handler. Overrides PluginFormBase:: |
|
PaymentReferenceForm:: |
public | function | Constructs a new PaymentReferenceForm object. | |
PluginFormBase:: |
protected | property | The plugin this form is for. | 3 |
PluginFormBase:: |
public | function |
Sets the plugin for this object. Overrides PluginAwareInterface:: |
1 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |