/** * Correct request data: detect temporary order and add data for temporary order * * @return array */ protected function getRequestData() { $data = parent::getRequestData(); $orderId = $this->getOrder()->getOrderId(); $tmpOrderData = \XLite\Controller\Admin\Order::getTemporaryOrderData(); $tmpItems = array(); if (empty($tmpOrderData[$orderId])) { // Current order is not a source order - search for temporary order in cache foreach ($tmpOrderData as $oid => $tmpData) { $tmpOid = is_object($tmpData['order']) ? $tmpData['order']->getOrderId() : (int) $tmpData['order']; if ($tmpOid == $orderId) { $tmpItems = isset($tmpData['items']) ? $tmpData['items'] : array(); break; } } } if (!empty($tmpItems)) { $dataTypes = array($this->getDataPrefix(), $this->getRemoveDataPrefix()); // Add data for temporary order foreach ($tmpItems as $origId => $tmpId) { foreach ($dataTypes as $dataType) { if (!empty($data[$dataType][$origId])) { $data[$dataType][$tmpId] = $data[$dataType][$origId]; unset($data[$dataType][$origId]); } } } $this->requestData = $data; } return $this->requestData; }