I would like to stop the "Welcome" Email that is sent after registration in Magento 2.4.3 (Open Source). Unfortunately I could not find a switchable option in the backend and the instructions referenced in this post do not work in my 2.4.3-p3 instance.
Does anyone have any advice for me on how to get there?
Hi @kempermusic
Could you post the code here so that it is clear what have you tried till now? This will make easy to to help.
Thanks
Hi @Mukesh Tiwari,
i initially used the code from the forum post that i linked (see above). After having no success with it, I modified the code as follows (derived from the Dotdigital module that also uses aroundNewAccount):
/app/code/<Vendor>/DisableWelcomeEmail/etc/di.xml:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Customer\Model\EmailNotificationInterface"> <plugin name="disable_welcome_email" sortOrder="1" type="<Vendor>\DisableWelcomeEmail\Plugin\CustomerEmailNotificationPlugin" /> </type> </config>
/app/code/<Vendor>/DisableWelcomeEmail/Plugin/CustomerEmailNotificationPlugin.php:
<?php namespace <Vendor>\DisableWelcomeEmail\Plugin; class CustomerEmailNotificationPlugin { public function aroundNewAccount( \Magento\Customer\Model\EmailNotificationInterface $emailNotification, callable $proceed, \Magento\Customer\Api\Data\CustomerInterface $customer, $type = \Magento\Customer\Model\EmailNotificationInterface::NEW_ACCOUNT_EMAIL_REGISTERED, $backUrl = '', $storeId = 0, $sendemailStoreId = null ) { return ; } }
This is the latest state, but it doesn't have the intended effect either.
Hello @kempermusic
Kindly follow below link:
Disable welcome email
Hi @Bhanu Periwal,
thank you for your answer, but this -disabling welcome email for one specific store view- is not, what I´m trying to achieve.
At the moment, this iss what I have:
EmailNotification.php:
<?php namespace <Vendor>\DisableWelcomeEmail\Plugin; class EmailNotification { public function aroundNewAccount ( \Magento\Customer\Model\EmailNotification $subject, \Closure $proceed ): \Magento\Customer\Model\EmailNotification { return $subject; } }
di.xml:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Customer\Model\EmailNotification"> <plugin name="disable_welcome_email" sortOrder="1" type="<Vendor>\DisableWelcomeEmail\Plugin\EmailNotification" /> </type> </config>
... but unfortunately the "Welcome"-Email is is sent anyway. Is there anything else I need to do? Are there any errors in the code or in the file structure?
Hello @kempermusic
Kindly refer below code:
class CustomerEmailNotificationPlugin { public function aroundNewAccount( \Magento\Customer\Model\EmailNotificationInterface $emailNotification, callable $proceed, \Magento\Customer\Api\Data\CustomerInterface $customer, $type = \Magento\Customer\Model\EmailNotificationInterface::NEW_ACCOUNT_EMAIL_REGISTERED, $backUrl = '', $storeId = 0, $sendemailStoreId = null ) { return ; } }
Hi @Bhanu Periwal ,
thank you, but unfortunately that does not work either.
How can I make sure that the class is loaded at all? Or, rather: how can I check if I made a mistake when including the plugin (e.g. wrong path, error in the XML)?
I am grateful for any advice!