mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
76 lines
1.9 KiB
PHP
76 lines
1.9 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\InstantPurchase\Block;
|
|
|
|
use Magento\Framework\View\Element\Template;
|
|
use Magento\Framework\View\Element\Template\Context;
|
|
use Magento\InstantPurchase\Model\Config;
|
|
|
|
/**
|
|
* Configuration for JavaScript instant purchase button component.
|
|
*
|
|
* @api
|
|
* @since 100.2.0
|
|
*/
|
|
class Button extends Template
|
|
{
|
|
/**
|
|
* @var Config
|
|
*/
|
|
private $instantPurchaseConfig;
|
|
|
|
/**
|
|
* Button constructor.
|
|
* @param Context $context
|
|
* @param Config $instantPurchaseConfig
|
|
* @param array $data
|
|
*/
|
|
public function __construct(
|
|
Context $context,
|
|
Config $instantPurchaseConfig,
|
|
array $data = []
|
|
) {
|
|
parent::__construct($context, $data);
|
|
$this->instantPurchaseConfig = $instantPurchaseConfig;
|
|
}
|
|
|
|
/**
|
|
* Checks if button enabled.
|
|
*
|
|
* @return bool
|
|
* @since 100.2.0
|
|
*/
|
|
public function isEnabled(): bool
|
|
{
|
|
return $this->instantPurchaseConfig->isModuleEnabled($this->getCurrentStoreId());
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
* @since 100.2.0
|
|
*/
|
|
public function getJsLayout(): string
|
|
{
|
|
$buttonText = $this->instantPurchaseConfig->getButtonText($this->getCurrentStoreId());
|
|
$purchaseUrl = $this->getUrl('instantpurchase/button/placeOrder', ['_secure' => true]);
|
|
|
|
// String data does not require escaping here and handled on transport level and on client side
|
|
$this->jsLayout['components']['instant-purchase']['config']['buttonText'] = $buttonText;
|
|
$this->jsLayout['components']['instant-purchase']['config']['purchaseUrl'] = $purchaseUrl;
|
|
return parent::getJsLayout();
|
|
}
|
|
|
|
/**
|
|
* Returns active store view identifier.
|
|
*
|
|
* @return int
|
|
*/
|
|
private function getCurrentStoreId(): int
|
|
{
|
|
return $this->_storeManager->getStore()->getId();
|
|
}
|
|
}
|