Emails

Type
Class
Namespace
craft\commerce\services
Inherits
craft\commerce\services\Emails » yii\base\Component (opens new window) » yii\base\BaseObject (opens new window)
Implements
yii\base\Configurable (opens new window)
Since
2.0

Email service.

View source (opens new window)

# Public Properties

# allEmails

Type
array (opens new window), craft\commerce\models\Email[]
Default value
null

View source (opens new window)

# allEnabledEmails

Type
craft\commerce\models\Email[]
Default value
null

View source (opens new window)

# Public Methods

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

# deleteEmailById()

Delete an email by its ID.

View source (opens new window)

Arguments

  • $id

# getAllEmails()

Get all emails.

View source (opens new window)

Returns

craft\commerce\models\Email[]

# getAllEmailsByOrderStatusId()

Get all emails by an order status ID.

View source (opens new window)

Arguments

  • $id

Returns

craft\commerce\models\Email[]

# getAllEnabledEmails()

Get all emails that are enabled.

View source (opens new window)

Returns

craft\commerce\models\Email[]

# getEmailById()

Get an email by its ID.

View source (opens new window)

Arguments

  • $id

# handleChangedEmail()

Handle email status change.

View source (opens new window)

Arguments

  • $event

Throws

# handleDeletedEmail()

Handle email getting deleted.

View source (opens new window)

Arguments

  • $event

Throws

# saveEmail()

Save an email.

View source (opens new window)

Arguments

  • $email
  • $runValidation

Throws

# sendEmail()

Send a commerce email.

View source (opens new window)

Arguments

Returns

boolean (opens new window) – $result

Throws

# Constants

Constant Description
CONFIG_EMAILS_KEY

# Events

# EVENT_AFTER_DELETE_EMAIL

Type
craft\commerce\events\EmailEvent

The event that is triggered after an email is deleted.

use craft\commerce\events\EmailEvent;
use craft\commerce\services\Emails;
use craft\commerce\models\Email;
use yii\base\Event;

Event::on(
    Emails::class,
    Emails::EVENT_AFTER_DELETE_EMAIL,
    function(EmailEvent $event) {
        // @var Email $email
        $email = $event->email;

        // ...
    }
);

# EVENT_AFTER_SAVE_EMAIL

Type
craft\commerce\events\EmailEvent

The event that is triggered after an email is saved.

use craft\commerce\events\EmailEvent;
use craft\commerce\services\Emails;
use craft\commerce\models\Email;
use yii\base\Event;

Event::on(
    Emails::class,
    Emails::EVENT_AFTER_SAVE_EMAIL,
    function(EmailEvent $event) {
        // @var Email $email
        $email = $event->email;
        // @var bool $isNew
        $isNew = $event->isNew;

        // ...
    }
);

# 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 $event) {
        // @var Message $message
        $message = $event->craftEmail;
        // @var Email $email
        $email = $event->commerceEmail;
        // @var Order $order
        $order = $event->order;
        // @var OrderHistory $history
        $history = $event->orderHistory;

        // Add the email address to an external CRM
        // ...
    }
);

# EVENT_BEFORE_DELETE_EMAIL

Type
craft\commerce\events\EmailEvent

The event that is triggered before an email is deleted.

use craft\commerce\events\EmailEvent;
use craft\commerce\services\Emails;
use craft\commerce\models\Email;
use yii\base\Event;

Event::on(
    Emails::class,
    Emails::EVENT_BEFORE_DELETE_EMAIL,
    function(EmailEvent $event) {
        // @var Email $email
        $email = $event->email;

        // ...
    }
);

# EVENT_BEFORE_SAVE_EMAIL

Type
craft\commerce\events\EmailEvent

The event that is triggered before an email is saved.

use craft\commerce\events\EmailEvent;
use craft\commerce\services\Emails;
use craft\commerce\models\Email;
use yii\base\Event;

Event::on(
    Emails::class,
    Emails::EVENT_BEFORE_SAVE_EMAIL,
    function(EmailEvent $event) {
        // @var Email $email
        $email = $event->email;
        // @var bool $isNew
        $isNew = $event->isNew;

        // ...
    }
);

# 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 (opens new window) 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 $event) {
        // @var Message $message
        $message = $event->craftEmail;
        // @var Email $email
        $email = $event->commerceEmail;
        // @var Order $order
        $order = $event->order;
        // @var OrderHistory $history
        $history = $event->orderHistory;

        // Use `$event->isValid = false` to prevent sending
        // based on some business rules or client preferences
        // ...
    }
);