1

I am trying to pass data into my email template, something like this: ['catalogue_url' => 'http://url.html']

I am struggling to access and output it in the email, I have tried the following:

Test 1: {{var $catalogue_url|raw}}

Test 2: {{var $catalogue_url}}

Test 3: {{var $catalogue_url}}

Test 4: {{var catalogue_url}}

Test 5: {{catalogue_url}}

My email sending code:

    $transport = $this->_transportBuilder
        ->setTemplateIdentifier($code)
        ->setTemplateModel($model)
        ->setTemplateOptions([
            'area' =>  $area,
            'store' => $this->storeManager->getStore()->getId(),
        ])
        ->setTemplateVars(['data' => $data])
        ->setFrom($sender)
        ->addTo($to)
        ->getTransport();

    $transport->sendMessage();

I will try with $data.catalogue_url now.

What is wrong with this?

  • 1
    Why don't you give any feedback about the answer? – Bunyamin Inan Nov 9 '17 at 13:14
  • 1
    I took a break from Magento development as I moved to the US. Apologies, best of luck with all of your work. – LM_Fielding Nov 22 '17 at 9:07
9

Try this:

$templateOptions = [
             'area' => \Magento\Framework\App\Area::AREA_FRONTEND,
             'store' => $this->storeManager->getStore()->getId()
            ];
            $templateVars = [
                        'store' => $this->storeManager->getStore(),
                        'admin_name' => 'Admin',
                        'subject'    => 'subject',
                        'catalogue_url'    => 'pass url here'
                    ];
            $from = ['email' => 'from@email.com', 'name' => 'from name'];
            $to= "test@gmial.com"
            $this->inlineTranslation->suspend();
            $transport = $this->transportBuilder->setTemplateIdentifier('template name or id')
                    ->setTemplateOptions($templateOptions)
                    ->setTemplateVars($templateVars)
                    ->setFrom($from)
                    ->addTo($to)
                    ->getTransport();
            $transport->sendMessage();
            $this->inlineTranslation->resume();

Use in email template {{var catalogue_url}} variable

  • 4
    I think your answer is wrong. I have managed to call it with {{var catalogue_url}}. – Bunyamin Inan Nov 9 '17 at 13:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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