Site icon MageComp Blog

How to Make User Register but not Login in Magento 2.4?

How to Make User Register but not Login in Magento 24

Hello Magento Friends,

Today I will provide the solution for How to Make User Register but not Login in Magento 2.4?

In default Magento, when the customer registers, they are not asked for login. The user gets automatically logged in after registering.

After registration, the customer must be redirected to the login page instead of automatic login. To accomplish this follow the below step.

Steps to Make User Register but not Login in Magento 2.4:

Step 1: Create a file in your extension along with the plugin at the below-mentioned path

app\code\Vendor\Extension\Plugin\Customer\Account\CreatePost.php

Now, add the below code

<?php

namespace Vendor\Extension\Plugin\Customer\Account;

use Magento\Framework\Controller\Result\RedirectFactory;
use Magento\Framework\App\Response\RedirectInterface;
use Magento\Customer\Model\Session;

class CreatePost
{
    protected $resultRedirectFactory;

    protected $redirect;

    protected $customerSession;

    public function __construct(
        RedirectFactory $redirectFactory,
        RedirectInterface $redirectInterface,
        Session $customerSession
    ) {
        $this->resultRedirectFactory = $redirectFactory;
        $this->redirect = $redirectInterface;
        $this->customerSession = $customerSession;
    }

    public function afterExecute(Magento\Customer\Controller\Account\CreatePost $subject, $result)
    {
        if ($this->customerSession->getRegisterSuccess()){
            $lastcustomerId = $this->customerSession->getCustomerId();
            $this->customerSession->logout()->setBeforeAuthUrl($this->redirect->getRefererUrl())
                ->setLastCustomerId($lastCustomerId);

            /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
            $resultRedirect = $this->resultRedirectFactory->create();
            $resultRedirect->setPath('customer/account/login');
            $result = $resultRedirect;
        }
        return $result;
    }
}

That’s it!

Conclusion:

Simple as that, this way you can Make User Register but not Login in Magento 2. Mention your difficulties in the comment box. Share the article and stay connected with us.

Happy Coding!

Exit mobile version