我想更改Magento 2中PDF文件的文件名。
默认名称不明确,我希望将发票保存到我电脑上的某个位置时可以搜索。
是否可以将Magento 2中PDF文件的文件名更改为“invoice_1000000123.pdf”之类的格式?
答案 0 :(得分:0)
您应该从不编辑核心文件。说真的,不要。
由于/vendor/magento/module-sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php
是一个抽象类,因此您必须在模块中使用插件或首选项才能覆盖它。
您需要达到的目标:
通常的最小文件数:
/Vendor/Module/composer.json
,/Vendor/Module/registration.php
,/Vendor/Module/etc/module.xml
在/Vendor/Module/etc/module.xml
中,您应该对Magento_Sales进行排序
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Module" setup_version="1.0.0">
<sequence>
<module name="Magento_Sales"/>
</sequence>
</module>
</config>
然后,您可以在/Vendor/Module/etc/di.xml
中使用插件或首选项
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\PrintAction" type="Vendor\Module\Controller\Adminhtml\Invoice\AbstractInvoice\PrintAction"/>
</config>
插件看起来像这样:
<type name="Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\PrintAction">
<plugin name="Vendor_Module::aroundPrintInvoice" type="Vendor\Module\Block\Class" sortOrder="0"/>
</type>
现在将PrintAction.php
添加到您的偏好设置/插件中指定的路径(偏好设置示例)
<?php
namespace Vendor\Module\Controller\Adminhtml\Invoice\AbstractInvoice;
class PrintAction extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\PrintAction
{
/* Write code here */
}
答案 1 :(得分:0)
您需要覆盖发票管理控制器。
image = con.recv(size)
在自定义模块管理控制器中,您需要更改Pdf文件的名称。
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="\Magento\Sales\Controller\Adminhtml\Order\Invoice"
type="Vendor\Module\Controller\Adminhtml\Order\Invoice" />
</config>
答案 2 :(得分:-1)
是的,可以更改发票pdf文件名。
请转到以下路径:
/vendor/magento/module-sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php
您可以从上面的文件更改文件名。