2

I have created a Transactional Emails template in magento admin to send multiple coupon codes dynamically for this I have created a template file says email/custom.phtml and it is included in email template.

It is included in email template successfully but I am trying to add {{var code12}}, {{ var code13 }} etc. with multiple time but it is not working.

If I add these in direct email template in magento admin then it is working as I want but I want to create {{var}} also dynamically.

I am using below code for sending email :

$senderName = 'custom';
$senderEmail = Mage::getStoreConfig('trans_email/ident_general/email');

$emailTemplate = Mage::getModel('core/email_template')->loadByCode('Custom Template');;
$emailTemplateVariables = array();
$emailTemplateVariables['name'] = 'name';
$emailTemplateVariables['code12'] = 'AB56FFD';
$processedTemplate = $emailTemplate->getProcessedTemplate($emailTemplateVariables);
$mail = Mage::getModel('core/email')
        ->setToName('name')
        ->setToEmail('[email protected]')
        ->setBody($processedTemplate)
        ->setSubject('Coupon code')
        ->setFromEmail($senderEmail)
        ->setFromName($senderName)
        ->setType('html');
$mail->send();

My custom.phtml code is here :

##My shopping cart rule are product specific
<table>
<?php 
$allProducts = array(10,20,30);
foreach($allProducts as $product_id)
{
    $product = Mage::getModel('catalog/product')->load($product_id);
    ?>
    <tr><td>
    <?php
    echo $product->getName();
    echo Mage::getModel('core/variable')->loadByCode('code12')->getValue('text');  // it is not working
    ?>
    {{var code12}}  // it is not working
    </td></tr>
    <?php
}
?>
</table>

And Transactional Emails template code is here :

...
{{block type="core/template"  name="email_custom" template="email/custom.phtml" }}
....

How to add custom variables in phtml file?

6
  • sorry don't understand you want to add phml file in email template or pass multiple variable to email template Oct 19, 2016 at 10:19
  • Yes I want to send multiple coupon code to one customer and for this calculation I have created a custom.phtml file which is included in email template. In event observer I generated code dynamically and saved to shopping cart rule. and at the time of email sending wants to send those code. Oct 19, 2016 at 10:25
  • Hello @NikunjPatel, Can you explain link provided by you? Oct 19, 2016 at 10:27
  • kindly add the phtml and email template code too. Oct 19, 2016 at 10:33

1 Answer 1

2

pass a array

$emailTemplateVariables['code'] = array('code12'=>'AB56FFD','code13'=>'AB5fd6FFD','code14'=>'AB56dfFFD') ;

you have to pass variable to phtml file

{{block type="core/template"  name="email_custom" template="email/custom.phtml" code=$code}}

in phtml file

$code= $this->getCode();
echo $code['code12'];
6
  • It will work with multiple variable? like {{block type="core/template" name="email_custom" template="email/custom.phtml" code12=$code12 code10=$code10}} Oct 19, 2016 at 10:46
  • yes it will work but it is better to pass array. Oct 19, 2016 at 10:47
  • How to pass array? Oct 19, 2016 at 10:51
  • @VinayaMaheshwari updated the code Oct 19, 2016 at 10:53
  • Hello @QaisarSatti, When I am using $code= $this->code() then an empty email received? Oct 19, 2016 at 11:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.