我正在尝试在 magento 管理员的主订单详细信息页面上添加打印订单按钮。客户的旧 magento 有一个订单本身的打印按钮(已付款或未付款,不是发票)。看看它以前的样子:
我在后端启用了模板提示,并且模板文件不包含该按钮。我已经浏览了几个核心文件...... html 如下所示。我如何将它变成适用于当前查看订单的 php 按钮?
<button id="id_d808fbd2d533d4e7b8e4a3fcd6274251" title="Back" type="button" class="scalable back" onclick="setLocation('http://test.animalnecessity.com/index.php/admin/sales_order/index/order_id/15852/key/28a65aa166da1664c65971decf3e472c/')" style="">
我可以实现这个吗? Magento - 将按钮添加到销售订单视图页面(观察者/事件),如果是这样,我会将这段代码放在哪里?
我已经按照此处描述的典型模块结构对其进行了设置:http: //alanstorm.com/magento_config。我在 etc 文件夹中的 config.xml 有以下内容
<config>
<modules>
<CaitlinHavener_printOrder>
<version>0.1.0</version>
</CaitlinHavener_printOrder>
</modules>
<global>
<events>
<core_block_abstract_to_html_before>
<observers>
<CaitlinHavener_printOrder>
<class>CaitlinHavener_printOrder_Model_Observer</class>
<method>orderPageButton</method>
<type>model</type>
</CaitlinHavener_printOrder>
</observers>
</core_block_abstract_to_html_before>
</events>
</global>
</config>
我的 CaitlinHavener_printOrder.xml 以下
<config>
<modules>
<CaitlinHavener_printOrder>
<active>true</active>
<codePool>local</codePool>
</CaitlinHavener_printOrder>
</modules>
</config>
和 Observer.php
<?php
// Order View Page button
class CaitlinHavener_printOrder_Model_Observer
{
public function orderPageButton( Varien_Event_Observer $observer )
{
if(get_class($block) =='Mage_Adminhtml_Block_Sales_Order_View'
&& $block->getRequest()->getControllerName() == 'sales_order')
{
$block->addButton('test_print', array(
'label' => 'Test',
'onclick' => 'setLocation(\'' . $block->getUrl('html/sales_order/print') . '\')',
'class' => 'go'
));
}
}
}
?>
这仍然行不通。有任何想法吗?