将字段添加到SendFriend函数Magento 1.8

时间:2014-03-15 20:58:30

标签: magento templates variables

也许你可以帮助我。我想在SendFriend表单中添加自定义字段。我改变了

应用/设计/前端/碱/默认/模板/ sendfriend / send.phtml。 这是调用$ this-> getSendUrl()函数来添加ACTION的表单。它还调用Block中的类似函数(getName,getEmail等)。我复制了2个字段并将其重命名为Telefono和Direccion。

<label for="sender_direccion" class="required"><em>*</em><?php echo $this->__('Dirección:') ?></label>
   <div class="input-box">
   <input name="sender[direccion]" value="<?php echo $this->escapeHtml($this->getDireccion()) ?>" title="<?php echo $this->__('Dirección') ?>" id="sender_direccion" type="text" class="input-text required-entry" />
   </div>
   </div>
   <div class="field">
                           <label for="sender_telefono" class="required"><em>*</em><?php echo $this->__('Telefono:') ?></label>
   <div class="input-box">
   <input name="sender[telefono]" value="<?php echo $this->escapeHtml($this->getTelefono()) ?>" title="<?php echo $this->__('Teléfono') ?>" id="sender_telefono" type="text" class="input-text required-entry" />
  </div>
 </div>

应用/代码/核心/法师/ Sendfriend /砌块/ Send.php。 我添加了两个函数getTelefono和getDireccion,它们返回“$ this-&gt; getFormData() - &gt; getData('sender / telephone');”。

/**
 * Retrieve Direccion text
 *
 * @return string
 */
public function getDireccion()
{
    return $this->getFormData()->getData('sender/direccion');
}

/**
 * Retrieve Telefono text
 *
 * @return string
 */
public function getTelefono()
{
    return $this->getFormData()->getData('sender/telefono');
}

应用/代码/核心/法师/ Sendfriend /型号/ Sendfriend.php。 在这个文件中,我改变了send()函数,添加了这些行和那些参数。

$message = nl2br(htmlspecialchars($this->getSender()->getMessage()));

$direccion = $this->_getHelper()->escapeHtml($this->getSender()->getDireccion(); //ADD
$telefono = $this->_getHelper()->escapeHtml($this->getSender()->getTelefono(); //ADD

$sender  = array(
    'name'  => $this->_getHelper()->escapeHtml($this->getSender()->getName()),
    'email' => $this->_getHelper()->escapeHtml($this->getSender()->getEmail())
);

$mailTemplate->setDesignConfig(array(
    'area'  => 'frontend',
    'store' => Mage::app()->getStore()->getId()
));

foreach ($this->getRecipients()->getEmails() as $k => $email) {
    $name = $this->getRecipients()->getNames($k);
    $mailTemplate->sendTransactional(
        $this->getTemplate(),
        $sender,
        $email,
        $name,
        $direccion,
        $telefono,
        array(
            'name'          => $name,
            'email'         => $email,
            'product_name'  => $this->getProduct()->getName(),
            'product_url'   => $this->getProduct()->getUrlInStore(),
            'message'       => $message,
            'sender_name'   => $sender['name'],
            'sender_email'  => $sender['email'],
            'direccion'   => $direccion,//ADD
            'telefono'   => $telefono,//ADD
            'product_image' => Mage::helper('catalog/image')->init($this->getProduct(),
                'small_image')->resize(75),
        )
    );
}

应用/区域/ EN_US /模板/电子邮件/ product_share.html。 是默认模板,所以我添加了变量,但没有显示它们。这是我尝试的不同方式

telefono: {{ var telefono }} </br>
direccion: {{ var direccion }} </br>
data.telefono: {{ var data.telefono }} </br>
data.direccion: {{ var data.direccion }} </br>
sender_direccion: {{ var sender_direccion }} </br>
sender_telefono: {{ var sender_telefono }} </br>
data.sender_direccion: {{ var data.sender_direccion }} </br>
data.sender_telefono: {{ var data.sender_telefono }} </br>

我要去了吗?我没有Magento的经验,所以我将非常感谢你的帮助 谢谢!

0 个答案:

没有答案