Your IP : 216.73.217.13


Current Path : /var/www/magento.test.indacotrentino.com/www/app/code/Webkul/BuyButton/Controller/Index/
Upload File :
Current File : /var/www/magento.test.indacotrentino.com/www/app/code/Webkul/BuyButton/Controller/Index/Index.php

<?php
/**
 * Webkul Software.
 *
 * @category  Webkul
 * @package   Webkul_BuyButton
 * @author    Webkul
 * @copyright Copyright (c)  Webkul Software Private Limited (https://webkul.com)
 * @license   https://store.webkul.com/license.html
 */
namespace Webkul\BuyButton\Controller\Index;

use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\Controller\ResultFactory;

class Index extends Action
{

    protected $_helper;

    /**
     * @var \Magento\Framework\App\ResponseInterface
     */
    protected $response;

    /**
     * @var Magento\Quote\Model\QuoteFactory
     */
    protected $_quoteFactory;

    /**
     * @var Magento\Checkout\Model\Session
     */
    protected $checkoutSession;

    /**
     * @var \Magento\Checkout\Model\Type\Onepage
     */
    protected $onePage;
    
    /**
     * constructor
     *
     * @param Context $context
     * @param \Webkul\BuyButton\Helper\Data $helper
     */
    public function __construct(
        Context $context,
        \Webkul\BuyButton\Helper\Data $helper,
        \Magento\Quote\Model\QuoteFactory $quoteFactory,
        \Magento\Checkout\Model\Session $checkoutSession,
        \Magento\Checkout\Model\Type\Onepage $onePage
    ) {
        $this->_helper = $helper;
        $this->_quoteFactory = $quoteFactory;
        $this->checkoutSession = $checkoutSession;
        $this->onePage = $onePage;
        parent::__construct($context);
    }

    /**
     * set javascript response
     *
     * @return string
     */
    public function execute()
    {
        $resultRedirect = $this->resultRedirectFactory->create();
        $cartId = $this->getCartId();
        if ($cartId) {
            $quote = $this->_quoteFactory->create()->load($cartId);
            $quote->setActive(1);
            $this->checkoutSession->setQuoteId($quote->getId());
            $this->onePage->setQuote($quote);
            $this->checkoutSession->getQuote()->collectTotals()->save();
        }

        $resultRedirect->setPath("checkout");
        return $resultRedirect;
    }

    private function getCartId()
    {
        $cartId = $this->getRequest()->getParam("access");
        return $cartId?$cartId:false;
    }
}