public function onBeforeSendMailSubject{$type}(string &$subject, object $data) : bool

Fires while fetching the subject to use for notification e-mails.


Description

Plugins can use this filter to manipulate at runtime the subject to use for e-mail notifications.

The dynamic portion of the hook name, $type, refers to the type of event that triggered the e-mail sending.
Here's a list of supported types:

  • customer
  • admin
  • cancellation
  • employee
  • waitlist
  • package
  • packadmin
  • usernote

This means that, for example, the notification e-mail sent to the customers will trigger a filter called onBeforeSendMailSubjectCustomer.


Parameters

&$subject

(string)  The current subject of the e-mail. Since the argument is passed as reference, it is possible to manipulate it.

$data

(mixed)  The entity to notify. In case of an appointment, the argument will be a VAPOrderAppointment object.

The hook might specify additional arguments, which can vary according to the current type.

Return Value

Boolean. Use false to prevent the e-mail sending.


Example

The example below uses a different e-mail subject depending on the status of the order. The new subject is applied only to the notification e-mail sent to the customers for appointments.

/**
 * Triggers a filter to let the plugins be able to handle the subject of the e-mail.
 *
 * The hook name is built as:
 * onBeforeSendMailSubject[TYPE]
 *
 * @param   string   &$subject  The current e-mail subject.
 * @param   object   $order     The appointment details.
 *
 * @return  boolean  False to prevent the e-mail sending.
 */
public function onBeforeSendMailSubjectCustomer(&$subject, $order)
{
    if ($order->status == 'C')
    {
        $subject = 'Your order has been confirmed';
    }
    else if ($order->status == 'P')
    {
        $subject = 'Your order has been paid';
    }
    else if ($order->status == 'W')
    {
        if ($order->id_payment > 0)
        {
            $subject = 'Your order requires a payment';
        }
        else
        {
            $subject = 'Your order is waiting for a manual approval';
        }
    }

    return true;
}

Changelog

VersionDescription
1.7 Introduced.
Last Update: 2021-10-16 17:24
Helpful?