Email templates are designed to send templated emails. Instead of messing with email text in your events you can define email template and send personalized emails with a couple lines of code.
Email templates
To add a new email template proceed to the Editor screen and add a new file under Custom Files. Add your email text or HTML there. The first line of email template is email subject, the rest is email body. And what makes it a template - there are placeholders like %quantity% that will be replaced with the actual values when template is sent.
Take a look at the email template we use in our shopping cart.
Xlinesoft order %invoice_number%: %item%
Date: %date%
Order Number: %invoice_number%
Product Title: %item%
Quantity: %quantity%
Unit Price: %item% US$ %price%
Total: US$ %total%
First: %first%
Last: %last%
Company Name:
Email Address: %buyer_email%
This is where you need to add in in the PHPRunner.
Now to send an email based on this template from the event like AfterAdd is as simple as this:
sendEmailTemplate( "test@test.com", "reminder.txt", $values, false );
sendEmailTemplate Syntax
sendEmailTemplate( $toEmail, $filename, $values, $isHtml );
Arguments
$toEmail
an email address where email will be sent
$filename
file name of the template
$values
an array with the actual values to replace placeholders
$isHtml
if true, send an HTML email. If false, send a plain text email.
Examples
Send a plain text email from event like AfterAdd
In event like AfterAdd or AfterEdit all field values are already stored in $values array so we can send our email using a single line of code.
sendEmailTemplate( $values["email"], $filename, $values, false );
Send an HTML email from event like AfterAdd
In event like AfterAdd or AfterEdit all field values are already stored in $values array so we can send our email using a single line of code.
sendEmailTemplate( $values["email"], $filename, $values, true );
Send a plain text email from from button's code
Lets consider a more interesting example. For instance we have added a button to the List page where you can select a few users and send each one a personalized reminder.
$data = array();
while($record = $button->getNextSelectedRecord()) {
$data["buyer_info"]=$record["buyer_info"];
$data["invoice_number"]=$record["invoice_number"];
$email = $record["buyer_email"];
sendEmailTemplate($email, "reminder.txt", $data, false);
}
See also: