![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-paypal/Model/Method/Checks/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Paypal\Model\Method\Checks; use Magento\Payment\Model\MethodInterface; use Magento\Payment\Model\Checks\SpecificationInterface; use Magento\Paypal\Model\Config; use Magento\Paypal\Model\Billing\AgreementFactory; use Magento\Quote\Model\Quote; /** * Plugin for \Magento\Payment\Model\Checks\Composite */ class SpecificationPlugin { /** * @var AgreementFactory */ private $agreementFactory; /** * @param AgreementFactory $agreementFactory */ public function __construct(AgreementFactory $agreementFactory) { $this->agreementFactory = $agreementFactory; } /** * Override check for Billing Agreements * * @param SpecificationInterface $specification * @param bool $result * @param MethodInterface $paymentMethod * @param Quote $quote * @return bool * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterIsApplicable( SpecificationInterface $specification, $result, MethodInterface $paymentMethod, Quote $quote ) { if (!$result) { return false; } if ($paymentMethod->getCode() == Config::METHOD_BILLING_AGREEMENT) { if ($quote->getCustomerId()) { $availableBA = $this->agreementFactory->create()->getAvailableCustomerBillingAgreements( $quote->getCustomerId() ); return count($availableBA) > 0; } return false; } return true; } }