将上述代码段更改为此选项以在销售订单视图中添加标签
<?xml version="1.0"?>
<layout>
<adminhtml_sales_order_view>
<reference name="sales_order_tabs">
<action method="addTab">
<name>my_custom_tab</name>
<block>customtabs/adminhtml_sales_order_tab</block>
</action>
</reference>
</adminhtml_sales_order_view>
</layout>
和
<?php
class Fishpig_Customtabs_Block_Adminhtml_Sales_Order_Tab
extends Mage_Adminhtml_Block_Template
implements Mage_Adminhtml_Block_Widget_Tab_Interface {
重要提示:请更改目录结构
答案 0 :(得分:0)
看看@ Custom tab on sales order view和How to create sales order custom tab in magento 1.8.0.1
文件夹结构应该是(在需要时Fishpig
替换您添加到local
Fishpig_Customtabs_Block_Adminhtml_Sales_Order_Tab /应用程序/代码/本地/ Fishpig / Customtabs / [块/ dminhtml /销售/订购/标签
答案 1 :(得分:0)
在管理面板的Magento 2,“销售订单”页面中,“本地”提供了“许多选项卡”,例如“信息”,“发票”,“发货”,“贷项通知单”,“交易”和“评论历史记录”。
对于您的自定义要求,您需要在“订单”页面中添加额外的标签,您可以通过简单的模块在“管理订单视图”页面中添加您的自定义标签。
您需要创建用于添加额外标签的简单模块。
有关添加额外标签的信息,请参见以下代码段, 为了简单起见,我将Rbj作为包名称,将OrderTab作为模块名称。 您需要创建第一个 registration.php 和 module.xml 文件来定义我们的模块。
路径: app / code / Rbj / OrderTab / registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Rbj_OrderTab',
__DIR__
);
创建 module.xml 文件,路径: app / code / Rbj / OrderTab / etc / module.xml
<?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="Rbj_OrderTab" setup_version="2.0.0">
<sequence>
<module name="Magento_Sales"/>
</sequence>
</module>
</config>
我们添加了对Magento Sales Module的依赖关系以添加新标签。因此,我们在上述XML文件的序列标签中定义了 Magento_Sales 模块。
现在是模块的主要入口点, 对于“添加新标签”,我们必须覆盖 sales_order_view.xml 文件,以添加添加自定义标签的逻辑。
参考栏 sales_order_tabs 包含标签列表。因此我们需要在下面的路径中的模块中创建 sales_order_view.xml 文件
路径: app / code / Rbj / OrderTab / view / adminhtml / layout / sales_order_view.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="sales_order_tabs">
<action method="addTab">
<argument name="name" xsi:type="string">custom_tabs</argument>
<argument name="block" xsi:type="string">Rbj\OrderTab\Block\Adminhtml\OrderEdit\Tab\View</argument>
</action>
</referenceBlock>
</body>
</page>
在上面的文件中,我们已声明“阻止文件”以设置您的自定义逻辑,您想在自定义标签中显示。
创建一个新的Block PHP文件,路径: app / code / Rbj / OrderTab / Block / Adminhtml / OrderEdit / Tab / View.php
<?php
namespace Rbj\OrderTab\Block\Adminhtml\OrderEdit\Tab;
/**
* Order custom tab
*
*/
class View extends \Magento\Backend\Block\Template implements \Magento\Backend\Block\Widget\Tab\TabInterface
{
protected $_template = 'tab/view/my_order_info.phtml';
/**
* View constructor.
* @param \Magento\Backend\Block\Template\Context $context
* @param \Magento\Framework\Registry $registry
* @param array $data
*/
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\Registry $registry,
array $data = []
) {
$this->_coreRegistry = $registry;
parent::__construct($context, $data);
}
/**
* Retrieve order model instance
*
* @return \Magento\Sales\Model\Order
*/
public function getOrder()
{
return $this->_coreRegistry->registry('current_order');
}
/**
* Retrieve order model instance
*
* @return \Magento\Sales\Model\Order
*/
public function getOrderId()
{
return $this->getOrder()->getEntityId();
}
/**
* Retrieve order increment id
*
* @return string
*/
public function getOrderIncrementId()
{
return $this->getOrder()->getIncrementId();
}
/**
* {@inheritdoc}
*/
public function getTabLabel()
{
return __('My Custom Tab');
}
/**
* {@inheritdoc}
*/
public function getTabTitle()
{
return __('My Custom Tab');
}
/**
* {@inheritdoc}
*/
public function canShowTab()
{
return true;
}
/**
* {@inheritdoc}
*/
public function isHidden()
{
return false;
}
}
在文件上方,我们可以使用 $ _ template 变量声明模板文件。
受保护的 $ _ template =‘tab / view / my_order_info.phtml’用于我们的自定义标签的模板文件。
您可以通过 getTabLabel ()设置“自定义标签”标签,并使用 getTabTitle ()函数设置标题。您可以在上述文件中定义自定义功能。
您可以通过调用 Magento \ Framework \ Registry 对象获取当前订单数据。
现在我们需要创建模板文件, 路径: app / code / Rbj / OrderTab / view / adminhtml / templates / tab / view / my_order_info.phtml
<?php
/**
* @var $block \Rbj\OrderTab\Block\Adminhtml\OrderEdit\Tab\View
*/
?>
<div class="fieldset-wrapper order-information">
<div class="fieldset-wrapper-title">
<span class="title"><?php /* @escapeNotVerified */
echo __('Information for new Order tab') ?></span>
</div>
<table class="admin__table-secondary">
<tbody>
<?php echo $block->getChildHtml(); ?>
<tr>
<th><?php /* @escapeNotVerified */
echo __('Order ID:') ?></th>
<td><?php echo $block->getOrderIncrementId(); ?></td>
</tr>
<tr>
<th><?php /* @escapeNotVerified */
echo __('Last History:') ?></th>
<td><?php echo __('History of order') ?></td>
</tr>
</tbody>
</table>
</div>
现在运行“升级”命令以安装我们的模块。
php bin / magento设置:升级 php bin / magento缓存:刷新
现在转到“管理”面板,使用您的凭据登录, 点击左侧边栏,销售->订单链接, 单击任何订单,您可以在“订单视图”页面中获得最后一个标签作为新的自定义标签。
在“销售订单”页面中检查“自定义”标签,