如何在 Magento2 的 Order Grid 上添加 MassAction?
How to add MassAction on Order Grid in Magento2?
我想在 Magento2 的 Order Grid 中添加一个 MassAction。
我在 view/adminhtml/ui_component/sales_order_grid 中添加 xml。xml.By 添加此 XML MassAction 在 dropdown.But 中显示,当我 select MassAction I未在 post 请求中获取订单 ID。
<?xml version="1.0" encoding="UTF-8"?>
<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<listingToolbar name="listing_top">
<massaction name="listing_massaction">
<action name="mass_order_assigntrackingnumber">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="type" xsi:type="string">order_assigntrackingnumber</item>
<item name="label" xsi:type="string" translate="true">Assign Tracking Number</item>
<item name="url" xsi:type="url" path="helloworld/orderprocessing/"/>
</item>
</argument>
</action>
</massaction>
</listingToolbar>
</listing>
我在打印 POST 请求时得到了 :-
Array
(
[key] => 2c7824dfa98ff4e9f550d2f4d07e696c650fbb48448ac3f8a8377f1c793e9294
[excluded] => false
[filters] => Array
(
[placeholder] => true
)
[search] =>
[namespace] => sales_order_grid
[form_key] => hvUs2LDFHbjJN3zY
)
批量操作控制器
<?php
namespace Inchoo\Helloworld\Controller\Adminhtml\Orderprocessing;
class Index extends \Magento\Backend\App\Action{
public function execute(){
$data = $this->getRequest()->getParams();
echo "<pre>";print_r($data); die;
die("Hello");
}
}
?>
请帮助我找出如何通过 Magento2 中的 MassAction 控制器中的自定义 MassAction 获取订单 ID?
批量操作控制器
按此更新代码:
<?php
namespace Inchoo\Helloworld\Controller\Adminhtml\Orderprocessing;
class Index extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction {
protected function massAction(AbstractCollection $collection){
//your code here
//Here you will get collection
}
}
参考代码:/var/www/html/mage2/vendor/magento/module-sales/Controller/Adminhtml/Order/MassCancel.php
我想在 Magento2 的 Order Grid 中添加一个 MassAction。
我在 view/adminhtml/ui_component/sales_order_grid 中添加 xml。xml.By 添加此 XML MassAction 在 dropdown.But 中显示,当我 select MassAction I未在 post 请求中获取订单 ID。
<?xml version="1.0" encoding="UTF-8"?>
<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<listingToolbar name="listing_top">
<massaction name="listing_massaction">
<action name="mass_order_assigntrackingnumber">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="type" xsi:type="string">order_assigntrackingnumber</item>
<item name="label" xsi:type="string" translate="true">Assign Tracking Number</item>
<item name="url" xsi:type="url" path="helloworld/orderprocessing/"/>
</item>
</argument>
</action>
</massaction>
</listingToolbar>
</listing>
我在打印 POST 请求时得到了 :-
Array
(
[key] => 2c7824dfa98ff4e9f550d2f4d07e696c650fbb48448ac3f8a8377f1c793e9294
[excluded] => false
[filters] => Array
(
[placeholder] => true
)
[search] =>
[namespace] => sales_order_grid
[form_key] => hvUs2LDFHbjJN3zY
)
批量操作控制器
<?php
namespace Inchoo\Helloworld\Controller\Adminhtml\Orderprocessing;
class Index extends \Magento\Backend\App\Action{
public function execute(){
$data = $this->getRequest()->getParams();
echo "<pre>";print_r($data); die;
die("Hello");
}
}
?>
请帮助我找出如何通过 Magento2 中的 MassAction 控制器中的自定义 MassAction 获取订单 ID?
批量操作控制器
按此更新代码:
<?php
namespace Inchoo\Helloworld\Controller\Adminhtml\Orderprocessing;
class Index extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction {
protected function massAction(AbstractCollection $collection){
//your code here
//Here you will get collection
}
}
参考代码:/var/www/html/mage2/vendor/magento/module-sales/Controller/Adminhtml/Order/MassCancel.php