0

Can you guys guide me on how to properly do this. I created a module to extend the EmailNotification model but its not working. I'm getting error during compile:

Interface '[Namespace]\[Module]\Model\EmailNotificationInterface' not found in /app/code/[Namespace]/[Module]/Model/EmailNo
tification.php on line 8

What I'm trying to achieve is to send email notification to admin every time a customer registers. I'm overriding this model just to modify the private function sendEmailTemplate to addBcc when it sends welcome email to the newly registered customer.

app/code/[Namespace]/[Module]/etc/di.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
  <preference for="Magento\Customer\Model\EmailNotification" type="[Namespace]\[Module]\Model\EmailNotification" />
</config>

app/code/[Namespace]/[Module]/model/EmailNotification.php

<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace [Namespace]\[Module]\Model;

class EmailNotification implements EmailNotificationInterface

Note: I copied everything on EmailNotification.php and just modified some parts.

0

Create a plugin for \Magento\Customer\Model\EmailNotification. Update di.xml

<type name="\Magento\Customer\Model\EmailNotification">
    <plugin name="disable-email-notification" type="Module\Model\Plugin\EmailNotification" sortOrder="1"/>
</type>

then create the plugin

class EmailNotification
{
    public function aroundNewAccount(\Magento\Customer\Model\EmailNotification $subject, \Closure $proceed)
    {
        return $subject;
    }
}
  • Its a private function. Does plugin work on private function? – Jim Jun 11 '18 at 19:27
  • which function use ? – user68116 Jun 11 '18 at 19:46
  • private function sendEmailTemplate This is the function I want to modify. – Jim Jun 11 '18 at 19:59
  • why this function modify ? – user68116 Jun 11 '18 at 20:04
  • Private functions cannot be modified with a plugin nor can they be overriden by extending the class. Good job magento... – omsta 2 days ago

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.