<type name="Magento\Quote\Model\Quote\Item\ToOrderItem"> <plugin name="McSize_to_order_item" type="Mc\Size\Model\Plugin\Quote\McSizeToOrderItem" sortOrder="1" disabled="false"/> </type>
type name
:輸入須要遵循的類或接口的名稱。plugin name
:標識插件的任意插件名稱。還用於合併插件的配置。plugin type
:填寫插件類或其虛擬類型的名稱。您能夠爲此字段引用如下命名約定:\Vendor\Module\Plugin\<ModelName>Plugin
。before
- before【 Dispatch Class Method Name 】() 在方法之前執行的方法;
around
- around【 Dispatch Class Method Name 】() 在方法運行時;
after
- after【 Dispatch Class Method Name 】() 在方法運行後執行方法;
<?php /** * Created by . * User: jerryxu * Date: 2019/5/5 * Time: 3:48 PM */ namespace Mc\Size\Model\Plugin\Quote; use Mc\Size\Traits\Common; /** * Fixme Plugin Quote_Item_Custom_Field To Sales_Order_Item_Custom_Field * Class McSizeToOrderItem * @package Mc\Size\Model\Plugin\Quote */ class McSizeToOrderItem { /** * */ use Common; /** Fixme texting Debug * @var int * @return 0/1 */ private $log = 1; /**Fixme Overrde Method * @param \Magento\Quote\Model\Quote\Item\ToOrderItem $subject * @param \Closure $proceed * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item * @param array $additional * @return Item */ public function aroundConvert( \Magento\Quote\Model\Quote\Item\ToOrderItem $subject, \Closure $proceed, \Magento\Quote\Model\Quote\Item\AbstractItem $item, $additional = [] ) { /** @var $orderItem Item */ $orderItem = $proceed($item, $additional); $orderItem->setSizeId($item->getSizeId());//Fixme Quote Item Custom Size_id To Sales Order Item Custom Size_id $orderItem->setSizeType($item->setSizeType());//Fixme Quote Item Custom Size_type To Sales Order Item Custom Size_type return $orderItem; } /** Fixme texting Debug * @param \Magento\Quote\Model\Quote\Item\ToOrderItem $subject * @param $data * @return array */ public function beforeConvert(\Magento\Quote\Model\Quote\Item\ToOrderItem $subject, $data) { /** * @var \Mc\Size\Helper\Data $helper */ if($this->log){ $helper = $this->mc_get_obj('Mc\Size\Helper\Data'); $helper->logger(__(__METHOD__)); } } }