Before Send Subject
public function onBeforeSendMailSubject{$group}{$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, $group
, refers to the section of the plugin sending the e-mail.
Here's a list of supported groups:
- restaurant
- takeaway
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 (restaurant & take-away)
- admin (restaurant & take-away)
- cancellation (restaurant & take-away)
- review (take-away only)
- stock (take-away only)
This means that, for example, the notification e-mail sent to the customers, for a restaurant reservation, will trigger a filter called onBeforeSendMailSubjectRestaurantCustomer
.
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 a restaurant reservation, the argument will be a
VREOrderRestaurant
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 take-away orders.
/**
* Triggers a filter to let the plugins be able to handle the subject of the e-mail.
*
* @param string &$subject The current e-mail subject.
* @param object $order The take-away order details.
*
* @return bool False to prevent the e-mail sending.
*/
public function onBeforeSendMailSubjectRestaurantCustomer(&$subject, $order)
{
if ($order->statusRole == 'APPROVED') {
$subject = 'Your order has been confirmed';
} elseif ($order->statusRole == 'PENDING') {
if ($order->payment) {
$subject = 'Your order requires a payment';
} else {
$subject = 'Your order is waiting for a manual approval';
}
}
return true;
}
Changelog
Version | Description |
---|---|
1.8 | Introduced. |