Magento发送电子邮件并添加调查URL

时间:2013-12-23 17:07:57

标签: php magento

我正在尝试在电子邮件模板的顶部和底部添加自定义调查网址。

我正在使用来自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?或者我如何以不同的方式进行设置呢?

1 个答案:

答案 0 :(得分:1)

为什么你的逻辑在模板中生成网址?

我会把它放在一个块中,你的模板应该是那种块类型。

然后就像调用$ this-&gt; getSurveyUrl()

一样简单

您的块类型可以扩展Mage_Sales_Block_Items_Abstract,以便您可以使用getOrder()和getShipment()函数。