Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 在订单确认电子邮件中使用客户名字_Magento_Magento 1.7 - Fatal编程技术网

Magento 在订单确认电子邮件中使用客户名字

Magento 在订单确认电子邮件中使用客户名字,magento,magento-1.7,Magento,Magento 1.7,我看过很多文章(大多是3-5年前的文章),详细介绍了将客户的名字输入订单确认电子邮件的各种方法,但我得到的不是空白的,就是未解析的PHP 例如: <?php echo $this->__('Hello, %s', Mage::getSingleton('customer/session')->getCustomer()->getFirstname()); ?> 在电子邮件中呈现如下内容: __('Hello,%s',Mage::getSingleton('cu

我看过很多文章(大多是3-5年前的文章),详细介绍了将客户的名字输入订单确认电子邮件的各种方法,但我得到的不是空白的,就是未解析的PHP

例如:

<?php echo $this->__('Hello, %s', Mage::getSingleton('customer/session')->getCustomer()->getFirstname()); ?>

在电子邮件中呈现如下内容:

__('Hello,%s',Mage::getSingleton('customer/session')->getCustomer()->getFirstname());?>

谁能给我指一下正确的方向吗?这是社区版1.7


谢谢

[编辑]您不能在电子邮件模板中直接使用PHP代码。如果要在电子邮件模板中插入动态数据,有两种可能:

a) 在每个事务性电子邮件中,您都可以访问负责事务性电子邮件的模型的方法:对于处理订单的邮件,这是订单模型;对于处理新闻稿的邮件,这是新闻稿模型,等等。您可以使用以下语法访问这些方法:

{{var model.method()}}
因此,在您的案例中,要在订单确认电子邮件中访问客户的名字,您需要在订单模型中寻找合适的方法,即
getCustomerFirstname()
。 然后可以按照给定的语法调用它:

{{var order.getCustomerFirstname()}}

b) 您可以通过创建自定义phtml模板并通过{{block}}指令将动态数据包含到电子邮件模板中(正如benmarks在下面的评论中指出的)

当您的答案合适时,“您不能在电子邮件模板中使用PHP代码”应该是合格的。消息体的内容没有被解析为PHP,但请查看订单模板,其中包括通过{block}}参数解析的PHP内容(模板)。很遗憾,以下内容根本没有输出任何内容:{var customer.getFirstName()}}@petergunn感谢更新。现在这很有意义,因为订单模型只有一个getCustomerName()方法,而没有getCustomerFirstName()方法。在这种情况下,我不得不选择b选项go@RussBack不完全是这样,订单模型有
getCustomerFirstname()
方法(不是
getCustomerFirstname()
),它在
getCustomerName()方法中使用。试试看,它对我有用。order.getCustomerFirstname()不适用于来宾签出,order.getBillingAddress()和getFirstname()都适用