82 private $_shortcutValidator;
107 \
Magento\Paypal\Model\ConfigFactory $paypalConfigFactory,
109 \
Magento\Framework\Math\Random $mathRandom,
120 $this->_paypalConfigFactory = $paypalConfigFactory;
121 $this->_checkoutSession = $checkoutSession;
122 $this->_checkoutFactory = $checkoutFactory;
123 $this->_mathRandom = $mathRandom;
124 $this->_localeResolver = $localeResolver;
125 $this->_shortcutValidator = $shortcutValidator;
127 $this->_paymentMethodCode = $paymentMethodCode;
128 $this->_startAction = $startAction;
129 $this->_checkoutType = $checkoutType;
133 parent::__construct($context,
$data);
135 $this->config = $this->_paypalConfigFactory->create();
136 $this->config->setMethod($this->_paymentMethodCode);
144 $result = parent::_beforeToHtml();
146 $isInCatalog = $this->getIsInCatalogProduct();
148 if (!$this->_shortcutValidator->validate($this->_paymentMethodCode, $isInCatalog)) {
149 $this->_shouldRender =
false;
153 $quote = $isInCatalog || !$this->_checkoutSession ? null : $this->_checkoutSession->getQuote();
156 $this->setShortcutHtmlId(
157 $this->_mathRandom->getUniqueHash(
'ec_shortcut_')
159 $this->
getUrl($this->_startAction)
163 if ($isInCatalog ||
null ===
$quote) {
164 $this->setImageUrl($this->config->getExpressCheckoutShortcutImageUrl($this->_localeResolver->getLocale()));
167 $parameters = [
'params' => [
'quote' =>
$quote,
'config' => $this->config]];
168 $checkoutModel = $this->_checkoutFactory->create($this->_checkoutType, $parameters);
169 $this->setImageUrl($checkoutModel->getCheckoutShortcutImageUrl());
185 return parent::_toHtml();
195 $isInCatalog = $this->getIsInCatalogProduct();
196 $isInContext = (bool)(
int) $this->config->getValue(
'in_context');
198 $isEnabled = ($isInContext && $isInCatalog) || !$isInContext;
199 $this->config->setMethod($this->_paymentMethodCode);
__construct(\Magento\Framework\View\Element\Template\Context $context, \Magento\Paypal\Model\ConfigFactory $paypalConfigFactory, \Magento\Paypal\Model\Express\Checkout\Factory $checkoutFactory, \Magento\Framework\Math\Random $mathRandom, \Magento\Framework\Locale\ResolverInterface $localeResolver, ValidatorInterface $shortcutValidator, $paymentMethodCode, $startAction, $checkoutType, $alias, $shortcutTemplate, \Magento\Checkout\Model\Session $checkoutSession=null, array $data=[])
getUrl($route='', $params=[])