6

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?

2
  • 1
    Why don't you give any feedback about the answer? Commented Nov 9, 2017 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. Commented Nov 22, 2017 at 9:07

1 Answer 1

18

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' => '[email protected]', 'name' => 'from name']; $to= "[email protected]" $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

2
  • 6
    I think your answer is wrong. I have managed to call it with {{var catalogue_url}}. Commented Nov 9, 2017 at 13:13
  • 1
    Be aware to no use spaces after {{ or before }}. Wrong {{ var catalogue_url }}. Right {{var catalogue_url}} Commented Aug 21, 2019 at 20:05

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.