我正在尝试在电子邮件模板的顶部和底部添加自定义调查网址。
我正在使用来自magento的非常基本/库存模板。我开发了两个模板来帮助生成URL:
surveyurl.phtml - 包含一些生成URL的逻辑
$surveys = array("somesurvey.com/1", "somesurvey.com/2");
$pick_survey_key = array_rand($surveys);
$url = $surveys[$pick_survey_key];
if($_order){
$survey_url = $url ."?order=". $_order->getIncrementId();
}
if ($coupon_code){
$survey_url .= "&code=". $coupon_code;
}
echo $survey_url;
survey.phtml - 包含显示在电子邮件页脚中的html。
<?php $_shipment=$this->getShipment() ?>
<?php $_order=$this->getOrder() ?>
<?php $coupon_code = $_order->getCouponCode(); ?>
<?php
if($_order) {
//get $survey_url from surveyurl.phtml
}
?>
<?php if ($_shipment && $_order): ?>
<table cellspacing="0" cellpadding="0" border="0" width="650" style="border:1px solid #EAEAEA;">
<thead>
<tr>
<th align="center" bgcolor="#EAEAEA" style="font-size:13px; padding:3px 9px"><?php echo $this->__('Help us by taking a survey!') ?></th>
</tr>
</thead>
<tbody>
<?php $i=0; foreach ($_shipment->getAllTracks() as $_item): $i++ ?>
<tr <?php echo $i%2?'bgcolor="#F6F6F6"':'' ?>>
<td align="center" valign="top" style="padding:3px 9px">
<a href ="<?php echo $survey_url ?>">Take our survey!</a>
</td>
</tr>
<tr>
<td style="padding:3px 9px" colspan="1">
*You will get something cool at the end ;)
</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<?php endif; ?>
在我的local.xml中我添加了:
<sales_email_order_surveyurl>
<block type="core/template" name="survey_url" template="email/order/shipment/surveyurl.phtml">
</block>
</sales_email_order_surveyurl>
然后在我的电子邮件模板中,我将其添加到顶部:
<p>Survey URL:
{{layout handle="sales_email_order_surveyurl" order=$order}}</p>
我在底部添加了这个:
<td>{{block type='core/template' area='frontend' template='email/order/shipment/survey.phtml' order=$order}}</td>
所以我的问题是:如何将surveyurl.phtml中生成的url传递给survey.phtml?或者我如何以不同的方式进行设置呢?
答案 0 :(得分:1)
为什么你的逻辑在模板中生成网址?
我会把它放在一个块中,你的模板应该是那种块类型。
然后就像调用$ this-&gt; getSurveyUrl()
一样简单您的块类型可以扩展Mage_Sales_Block_Items_Abstract,以便您可以使用getOrder()和getShipment()函数。