将Twig Render传递到电子邮件模板

时间:2019-05-13 17:43:36

标签: wordpress twig html-email

我已经编写了一个类,可以在创建通用前端视图时根据Twig的要求为我的应用程序创建视图。使用此类在前端上显示页面效果很好。

但是,现在我想将渲染的视图传递到电子邮件body中,这对我来说很困难。我的班级ViewBuilder仅接收模板数据数组,要使用的模板名称,然后调用render()方法,效果很好。

在发送电子邮件之前调用此视图是通过以下方法创建的:

/**
 * @throws \Twig_Error_Runtime
 * @throws \Twig_Error_Syntax
*/
private function createView()
{
    $view = new ViewBuilder(['emailData' => $this->buildEmailData()]);
    $view->setTemplate('Email/email');
    $view->render();
}

然后,在我的Email类中触发电子邮件发送的方法中,我通过调用此body方法来设置电子邮件的createView

private function doSendEmail()
{
    wp_mail($this->getRecipient(), $this->getSubject(), $this->createView(), $this->headers);
}

但是,什么都没有通过,并且电子邮件失败。当我在错误日志中关注该视图时,我的createView方法确实创建了视图,但是我不理解如何将其作为字符串传递到body中。任何帮助将不胜感激。

0 个答案:

没有答案