arch-8.x-1.x-dev/modules/payment/arch_payment.api.php
modules/payment/arch_payment.api.php
<?php /** * @file * Hooks specific to the Arch payment module. */ use Drupal\arch_order\Entity\OrderInterface; use Drupal\arch_payment\PaymentMethodInterface; use Drupal\arch_price\Price\PriceInterface; use Drupal\Core\Access\AccessResult; use Drupal\Core\Session\AccountInterface; /** * @addtogroup hooks * @{ */ /** * Payment method access. * * @param \Drupal\arch_payment\PaymentMethodInterface $payment_method * Payment method. * @param \Drupal\arch_order\Entity\OrderInterface $order * Order entity. * @param \Drupal\Core\Session\AccountInterface $account * User. * * @return \Drupal\Core\Access\AccessResultReasonInterface * Result. */ function hook_payment_method_access(PaymentMethodInterface $payment_method, OrderInterface $order, AccountInterface $account) { if ( $payment_method->getPluginId() === 'saferpay' && $order->getOwner()->isAnonymous() ) { return AccessResult::forbidden(); } return AccessResult::neutral(); } /** * Alter the payment method's fee. * * @param \Drupal\arch_order\Entity\OrderInterface $order * Order. * @param \Drupal\arch_price\Price\PriceInterface $price * Price. * @param array $context * An optional context array containing data related to the payment method. */ function hook_payment_method_fee_alter(OrderInterface $order, PriceInterface $price, array $context) { // @todo Add example. } /** * @} End of "addtogroup hooks". */