我已经编写了一个类,可以在创建通用前端视图时根据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
中。任何帮助将不胜感激。