Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Index.php
Go to the documentation of this file.
1 <?php
8 declare(strict_types=1);
9 
11 
12 use Magento\Framework\App\Action\HttpGetActionInterface as HttpGetActionInterface;
13 
14 class Index extends \Magento\Checkout\Controller\Onepage implements HttpGetActionInterface
15 {
21  public function execute()
22  {
24  $checkoutHelper = $this->_objectManager->get(\Magento\Checkout\Helper\Data::class);
25  if (!$checkoutHelper->canOnepageCheckout()) {
26  $this->messageManager->addErrorMessage(__('One-page checkout is turned off.'));
27  return $this->resultRedirectFactory->create()->setPath('checkout/cart');
28  }
29 
30  $quote = $this->getOnepage()->getQuote();
31  if (!$quote->hasItems() || $quote->getHasError() || !$quote->validateMinimumAmount()) {
32  return $this->resultRedirectFactory->create()->setPath('checkout/cart');
33  }
34 
35  if (!$this->_customerSession->isLoggedIn() && !$checkoutHelper->isAllowedGuestCheckout($quote)) {
36  $this->messageManager->addErrorMessage(__('Guest checkout is disabled.'));
37  return $this->resultRedirectFactory->create()->setPath('checkout/cart');
38  }
39 
40  // generate session ID only if connection is unsecure according to issues in session_regenerate_id function.
41  // @see http://php.net/manual/en/function.session-regenerate-id.php
42  if (!$this->isSecureRequest()) {
43  $this->_customerSession->regenerateId();
44  }
45  $this->_objectManager->get(\Magento\Checkout\Model\Session::class)->setCartWasUpdated(false);
46  $this->getOnepage()->initCheckout();
47  $resultPage = $this->resultPageFactory->create();
48  $resultPage->getConfig()->getTitle()->set(__('Checkout'));
49  return $resultPage;
50  }
51 
57  private function isSecureRequest(): bool
58  {
59  $request = $this->getRequest();
60 
61  $referrer = $request->getHeader('referer');
62  $secure = false;
63 
64  if ($referrer) {
65  $scheme = parse_url($referrer, PHP_URL_SCHEME);
66  $secure = $scheme === 'https';
67  }
68 
69  return $secure && $request->isSecure();
70  }
71 }
$quote
__()
Definition: __.php:13