![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/extmag/shiplab/Model/Source/ |
<?php /** * Copyright © Extmag. All rights reserved. */ namespace Extmag\Shiplab\Model\Source; use Magento\Framework\App\RequestInterface; use Magento\Framework\Data\OptionSourceInterface; use Magento\Sales\Model\OrderFactory; class ProductsByOrder implements OptionSourceInterface { protected $orderFactory; protected $request; public function __construct( OrderFactory $productCollectionFactory, RequestInterface $request ) { $this->orderFactory = $productCollectionFactory; $this->request = $request; } public function toOptionArray() { $order = $this->orderFactory->create()->load($this->request->getParam('order_id')); $ret = []; foreach ($order->getAllVisibleItems() as $value) { if ($value->getHasChildren() && $value->getProductType() != 'configurable') { $children = $value->getChildrenItems(); $parentProducts = []; foreach ($children as $item) { $parentProducts[] = [ 'value' => $item->getId(), 'label' => $item->getName(), ]; } $ret[] = [ 'value' => $parentProducts, 'label' => $value->getName(), ]; } else { $ret[] = [ 'value' => $value->getId(), 'label' => $value->getName(), ]; } } return $ret; } }