我试图让我的客户可以给他们的订单添加评论。所以我搜索了一个扩展后,我找到了一个。设置似乎很容易... 你刚确保块被加载在checkout.xmlMagento在结帐时添加评论
<block type="checkout/agreements" name="checkout.onepage.agreements" as="agreements" template="checkout/onepage/agreements.phtml"/>
链接Magemaven OrderComment: http://www.magentocommerce.com/magento-connect/magemaven-ordercomment.html
但是未启用文本框显示出来。我的猜测是另一个扩展名(MageSetup)正在造成这种情况。当我激活模板提示时,它会向我显示不同的布局,而不是在checkout.xml中设置的布局。有一些phtml从“magesetup”文件夹加载。
我已经安装了Magento DE 1.9。有人可以解释为什么checkout.xml没有加载?是否有一些窍门通过我不知道的数据库加载的东西?
编辑: 我试图按照本教程中,但似乎出事了http://www.appseconnect.com/how-to-add-order-comment-on-customer-checkout-in-magento/
如何检查,如果该脚本正确执行?
$c = array (
‘entity_type_id’ => 1234,
‘attribute_code’ => ‘myorder_customercomment’,
‘backend_type’ => ‘text’, // MySQL-DataType
‘frontend_input’ => ‘textarea’, // Type of the HTML-Form-Field
‘is_global’ => ‘1’,
‘is_visible’ => ‘1’,
‘is_required’ => ‘0’,
‘is_user_defined’ => ‘0’,
‘frontend_label’ => ‘Customer Comment’,
);
$attribute = new Mage_Eav_Model_Entity_Attribute();
$attribute->loadByCode($c[‘entity_type_id’], $c[‘attribute_code’])
->setStoreId(0)
->addData($c);
$attribute->save();
我觉得缺少某些东西,因为该类缺少方法getMyorderCustomercomment。或者这种方法是自动生成的?
MyCompany_MyOrder_Helper_CustomerOrderComment extends Mage_Core_Helper_Abstract {
public function setCustomerOrderComment($observer) {
$orderComment = $this->_getRequest()->getPost(‘myCustomerOrderComment’, false);
$observer->getEvent()->getOrder()->setMyorderCustomercomment($orderComment);
}
}
更新: 配置文件:
<?xml version="1.0"?>
<config>
<global>
<modules>
<MyCompany_MyOrder>
<version>0.1.0</version>
</MyCompany_MyOrder>
</modules>
<helpers>
<myorder>
<class>MyCompany_MyOrder_Helper</class>
</myorder>
</helpers>
</global>
<frontend>
<events>
<checkout_type_onepage_save_order>
<observers>
<myorder_set_customerordercomment>
<type>model</type>
<class>MyCompany_MyOrder_Helper_CustomerOrderComment</class>
<method>setCustomerOrderComment</method>
</myorder_set_customerordercomment>
</observers>
</checkout_type_onepage_save_order>
</events>
</frontend>
</config>
助手:
<?php
class MyCompany_MyOrder_Helper_CustomerOrderComment extends Mage_Core_Helper_Abstract {
public function setCustomerOrderComment($observer) {
$orderComment = $this->_getRequest()->getPost('myCustomerOrderComment', false);
mail('[email protected]', 'TestMail', $orderComment);
$observer->getEvent()->getOrder()->setMyorderCustomercomment($orderComment)->save();
}
}
更新了问题 –
更新了答案。 –
eav_attribute中存在attribute_code“myorder_customercomment”。有没有办法检查数据库是否设置了字段?因为我认为实际的问题是,我不知道如果我不能加载属性或如果属性没有设置。我甚至尝试在这个功能发送电子邮件,但我没有收到电子邮件。我试图回应的价值,但我没有得到任何东西,所以我的猜测是该函数未被加载保存属性:$ _order = Mage :: getModel('sales/order') - > load(100000608) ; echo $ _order-> getMyorderCustomercomment(); 有没有办法检查函数是否运行? –