我试图覆盖 Pdf 类以更改 Invoice/Shipment/Creditmemo pdf,但它似乎没有反映出来。
我在 Mymodule/etc/config.xml 中创建了一个模块
<config>
<modules>
<Mymodule_Printtemplates>
<version>0.1.0</version>
</Mymodule_Printtemplates>
</modules>
<global>
<models>
<sales>
<rewrite>
<order_pdf_abstract>Mymodule_Printtemplates_Model_Order_Pdf_Abstract</order_pdf_abstract>
<order_pdf_invoice>Mymodule_Printtemplates_Model_Order_Pdf_Invoice</order_pdf_invoice>
<order_pdf_creditmemo>Mymodule_Printtemplates_Model_Order_Pdf_Creditmemo</order_pdf_Creditmemo>
<order_pdf_shipment>Mymodule_Printtemplates_Model_Order_Pdf_Shipment</order_pdf_shipment>
</rewrite>
</sales>
</models>
</global>
然后我在 Mymodule/models/ 中创建了以下模型类作为 Abstract.php、Invoice.php、Shipment.php、Creditmemo.php
abstract class Mymodule_Printtemplates_Model_Order_Pdf_Abstract extends Mage_Sales_Model_Order_Pdf_Abstract
class Mymodule_Printtemplates_Model_Order_Pdf_Invoice extends Mymodule__Printtemplates_Model_Order_Pdf_Abstract { ... functions here ...}
class Mymodule_Printtemplates_Model_Order_Pdf_Shipment extends Mymodule__Printtemplates_Model_Order_Pdf_Abstract{ ... functions here ...}
class Mymodule_Printtemplates_Model_Order_Pdf_Creditmemo extends Mymodule__Printtemplates_Model_Order_Pdf_Abstract{ ... functions here ...}
该模块已启用 - 我已通过 System>Configuration>Admin>Advanced 检查它,但它似乎没有反映更改
另一方面,如果我将粘贴 Mage/Sales/Model/Order/Pdf/*.php 复制到本地并进行更改,则会反映更改。我知道这不是推荐的方法,但通过重写类的方法似乎不起作用。
通过类重写对第一种方法的任何帮助将不胜感激。
谢谢,洛芙琳
真正的问题是 etc/config.xml 中的语法错误 [参见结束标记中的大写 C]
Mymodule_Printtemplates_Model_Order_Pdf_Creditmemo
我使用以下方法来调试问题:将其放在 index.php 的底部,类似于 Alans 模块列表,但可以快速复制/粘贴代码。请记住,Magento 的所有 XML 都组合成一棵 XML 树。
header("内容类型:文本/xml"); die(Mage::app()->getConfig()->getNode()->asXML());