* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @copyright PayPal */ namespace PaypalAddons\classes\PUI; use Address; use Configuration; use Context; use Country; use PaypalAddons\classes\AbstractMethodPaypal; use PaypalAddons\classes\Constants\PUI; use Tools; class PuiFunctionality { protected $method; public function __construct() { $this->method = AbstractMethodPaypal::load(); } public function isAvailable($refresh = true) { $isAvailable = (int) Configuration::get(PUI::CONFIGURATION_IS_AVAILABLE); if ($refresh == false && in_array($isAvailable, [PUI::IS_AVAILABLE, PUI::IS_UNAVAILABLE])) { return $isAvailable == PUI::IS_AVAILABLE; } $sellerStatus = $this->method->getSellerStatus(); if ($sellerStatus->isSuccess() == false) { Configuration::updateValue(PUI::CONFIGURATION_IS_AVAILABLE, PUI::IS_UNAVAILABLE); return false; } if (empty($sellerStatus->getCapabilities())) { Configuration::updateValue(PUI::CONFIGURATION_IS_AVAILABLE, PUI::IS_UNAVAILABLE); return false; } foreach ($sellerStatus->getCapabilities() as $capability) { if (Tools::strtoupper($capability) == 'PAY_UPON_INVOICE') { Configuration::updateValue(PUI::CONFIGURATION_IS_AVAILABLE, PUI::IS_AVAILABLE); return true; } } Configuration::updateValue(PUI::CONFIGURATION_IS_AVAILABLE, PUI::IS_UNAVAILABLE); return false; } public function isEligibleContext(Context $context) { if (empty($context->cart->id_address_delivery)) { return false; } $address = new Address($context->cart->id_address_delivery); return 'de' == Tools::strtolower(Country::getIsoById($address->id_country)); } }