![]() 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/cartforge.co/vendor/magento/module-sales/Block/Order/Info/Buttons/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Sales\Block\Order\Info\Buttons; use Magento\Framework\App\ObjectManager; use Magento\Sales\Model\Rss\Signature; /** * Block of links in Order view page * * @api * @since 100.0.2 */ class Rss extends \Magento\Framework\View\Element\Template { /** * @var string */ protected $_template = 'Magento_Sales::order/info/buttons/rss.phtml'; /** * @var \Magento\Sales\Model\OrderFactory */ protected $orderFactory; /** * @var \Magento\Framework\App\Rss\UrlBuilderInterface */ protected $rssUrlBuilder; /** * @var Signature */ private $signature; /** * @param \Magento\Framework\View\Element\Template\Context $context * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Framework\App\Rss\UrlBuilderInterface $rssUrlBuilder * @param array $data * @param Signature|null $signature */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Framework\App\Rss\UrlBuilderInterface $rssUrlBuilder, array $data = [], Signature $signature = null ) { $this->orderFactory = $orderFactory; $this->rssUrlBuilder = $rssUrlBuilder; $this->signature = $signature ?: ObjectManager::getInstance()->get(Signature::class); parent::__construct($context, $data); } /** * Get link url. * * @return string */ public function getLink() { return $this->rssUrlBuilder->getUrl($this->getLinkParams()); } /** * Get translatable label for url. * * @return \Magento\Framework\Phrase */ public function getLabel() { return __('Subscribe to Order Status'); } /** * Check whether status notification is allowed * * @return bool */ public function isRssAllowed() { return $this->_scopeConfig->isSetFlag( 'rss/order/status', \Magento\Store\Model\ScopeInterface::SCOPE_STORE ); } /** * Retrieve order status url key * * @param \Magento\Sales\Model\Order $order * @return string */ protected function getUrlKey($order) { $data = [ 'order_id' => $order->getId(), 'increment_id' => $order->getIncrementId(), 'customer_id' => $order->getCustomerId(), ]; return base64_encode(json_encode($data)); } /** * Get type, secure and query params for link. * * @return array * @SuppressWarnings(PHPMD.RequestAwareBlockMethod) */ protected function getLinkParams() { $order = $this->orderFactory->create()->load($this->_request->getParam('order_id')); $data = $this->getUrlKey($order); return [ 'type' => 'order_status', '_secure' => true, '_query' => ['data' => $data, 'signature' => $this->signature->signData($data)], ]; } }