Emails

Type
Class
Namespace
craft\commerce\services
Inherits
craft\commerce\services\Emails » yii\base\Component » yii\base\BaseObject
Implements
yii\base\Configurable
Since
2.0

Email service.

View source

Public Properties

PropertyDescription
$allEmailscraft\commerce\models\Email[]
$behaviorsyii\base\Behavior – List of behaviors attached to this component

$allEmails

Signature

public craft\commerce\models\Email[] getAllEmails ( )

Public Methods

MethodDescription
__call()Calls the named method which is not a class method.
__clone()This method is called after the object is created by cloning an existing one.
__construct()Constructor.
__get()Returns the value of an object property.
__isset()Checks if a property is set, i.e. defined and not null.
__set()Sets value of an object property.
__unset()Sets an object property to null.
attachBehavior()Attaches a behavior to this component.
attachBehaviors()Attaches a list of behaviors to the component.
behaviors()Returns a list of behaviors that this component should behave as.
canGetProperty()Returns a value indicating whether a property can be read.
canSetProperty()Returns a value indicating whether a property can be set.
className()Returns the fully qualified name of this class.
deleteEmailById()Delete an email by its ID.
detachBehavior()Detaches a behavior from the component.
detachBehaviors()Detaches all behaviors from the component.
ensureBehaviors()Makes sure that the behaviors declared in behaviors() are attached to this component.
getAllEmails()Get all emails.
getAllEmailsByOrderStatusId()Get all emails by an order status ID.
getBehavior()Returns the named behavior object.
getBehaviors()Returns all behaviors attached to this component.
getEmailById()Get an email by its ID.
hasEventHandlers()Returns a value indicating whether there is any handler attached to the named event.
hasMethod()Returns a value indicating whether a method is defined.
hasProperty()Returns a value indicating whether a property is defined.
init()Initializes the object.
off()Detaches an existing event handler from this component.
on()Attaches an event handler to an event.
saveEmail()Save an email.
sendEmail()Send a commerce email.
trigger()Triggers an event.

deleteEmailById()

Delete an email by its ID.

View source

Arguments

Returns

boolean

Signature

public boolean deleteEmailById ( $id )

getAllEmails()

Signature

public craft\commerce\models\Email[] getAllEmails ( )

getAllEmailsByOrderStatusId()

Get all emails by an order status ID.

View source

Arguments

Returns

craft\commerce\models\Email[]

Signature

public craft\commerce\models\Email[] getAllEmailsByOrderStatusId ( \craft\commerce\services\int $id )

getEmailById()

Get an email by its ID.

View source

Arguments

Returns

craft\commerce\models\Email, null

Signature

public craft\commerce\models\Email, null getEmailById ( $id )

saveEmail()

Save an email.

View source

Arguments

Returns

boolean

Throws

Signature

public boolean saveEmail ( craft\commerce\models\Email $model, \craft\commerce\services\bool $runValidation = true )

sendEmail()

Send a commerce email.

View source

Arguments

Returns

boolean – $result

Signature

public boolean sendEmail ( $email, $order, $orderHistory )

Events

EVENT_AFTER_SEND_MAIL

Type
craft\commerce\events\MailEvent

The event that is raised after an email is sent

Plugins can get notified after an email has been sent out.

use craft\commerce\events\MailEvent;
use craft\commerce\services\Emails;
use yii\base\Event;

Event::on(Emails::class, Emails::EVENT_AFTER_SEND_MAIL, function(MailEvent $e) {
     // Perhaps add the email to a CRM system
});

EVENT_BEFORE_SEND_MAIL

Type
craft\commerce\events\MailEvent

The event that is raised before an email is sent. You may set craft\commerce\events\MailEvent::$isValid to false to prevent the email from being sent.

Plugins can get notified before an email is being sent out.

use craft\commerce\events\MailEvent;
use craft\commerce\services\Emails;
use yii\base\Event;

Event::on(Emails::class, Emails::EVENT_BEFORE_SEND_MAIL, function(MailEvent $e) {
     // Maybe prevent the email based on some business rules or client preferences.
});