mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 17:27:36 +00:00
96 lines
2.9 KiB
PHP
96 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Checkout\Controller\Account;
|
|
|
|
use Magento\Framework\Controller\ResultFactory;
|
|
use Magento\Framework\Exception\AlreadyExistsException;
|
|
use Magento\Framework\Exception\NoSuchEntityException;
|
|
|
|
/**
|
|
* @deprecated 100.2.5
|
|
* @see DelegateCreate
|
|
*/
|
|
class Create extends \Magento\Framework\App\Action\Action
|
|
{
|
|
/**
|
|
* @var \Magento\Checkout\Model\Session
|
|
*/
|
|
protected $checkoutSession;
|
|
|
|
/**
|
|
* @var \Magento\Customer\Model\Session
|
|
*/
|
|
protected $customerSession;
|
|
|
|
/**
|
|
* @var \Magento\Sales\Api\OrderCustomerManagementInterface
|
|
*/
|
|
protected $orderCustomerService;
|
|
|
|
/**
|
|
* @param \Magento\Framework\App\Action\Context $context
|
|
* @param \Magento\Checkout\Model\Session $checkoutSession
|
|
* @param \Magento\Customer\Model\Session $customerSession
|
|
* @param \Magento\Sales\Api\OrderCustomerManagementInterface $orderCustomerService
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function __construct(
|
|
\Magento\Framework\App\Action\Context $context,
|
|
\Magento\Checkout\Model\Session $checkoutSession,
|
|
\Magento\Customer\Model\Session $customerSession,
|
|
\Magento\Sales\Api\OrderCustomerManagementInterface $orderCustomerService
|
|
) {
|
|
$this->checkoutSession = $checkoutSession;
|
|
$this->customerSession = $customerSession;
|
|
$this->orderCustomerService = $orderCustomerService;
|
|
parent::__construct($context);
|
|
}
|
|
|
|
/**
|
|
* Execute request
|
|
*
|
|
* @throws AlreadyExistsException
|
|
* @throws NoSuchEntityException
|
|
* @throws \Exception
|
|
* @return \Magento\Framework\Controller\Result\Json
|
|
*/
|
|
public function execute()
|
|
{
|
|
/** @var \Magento\Framework\Controller\Result\Json $resultJson */
|
|
$resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
|
|
|
|
if ($this->customerSession->isLoggedIn()) {
|
|
return $resultJson->setData(
|
|
[
|
|
'errors' => true,
|
|
'message' => __('Customer is already registered')
|
|
]
|
|
);
|
|
}
|
|
$orderId = $this->checkoutSession->getLastOrderId();
|
|
if (!$orderId) {
|
|
return $resultJson->setData(
|
|
[
|
|
'errors' => true,
|
|
'message' => __('Your session has expired')
|
|
]
|
|
);
|
|
}
|
|
try {
|
|
$this->orderCustomerService->create($orderId);
|
|
return $resultJson->setData(
|
|
[
|
|
'errors' => false,
|
|
'message' => __('A letter with further instructions will be sent to your email.')
|
|
]
|
|
);
|
|
} catch (\Exception $e) {
|
|
$this->messageManager->addExceptionMessage($e, $e->getMessage());
|
|
throw $e;
|
|
}
|
|
}
|
|
}
|