I have created a custom module, and added event in etc/events.xml
as below :
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="customer_account_create">
<observer name="customizecustomer_accountcreate" instance="Module\Custom\Model\Accountcreate" shared="false" />
</event>
</config>
And created a file Model/Accountcreate.php
as below :
namespace Module\Custom\Model;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Event\Observer;
class Accountcreate implements ObserverInterface
{
public function execute(Observer $observer)
{
$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/customer.log');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info('Accountcreate'); // to check if event is working or not
}
}
Also executed below commands :
php bin/magento cache:clean
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
But when I'm trying to register as customer the event is not calling.
I want to add some server side validation on customer account create.
Am I doing anything wrong? Is there any another event which trigger before account create?
Best Answer
There is no event
customer_account_create
You can use
customer_register_success
for customer register success.You can see all the event list here.
Or
You can use this event for validation.
Magento is using this event for validating captcha.