/** * Converts object to array * * @return array */ public function asArray() { if ($this->_storeManager->getStore()->getBaseCurrency() && $this->_storeManager->getStore()->getCurrentCurrency()) { $currencyFilter = $this->_storeManager->getStore()->getCurrentCurrency()->getFilter(); $currencyFilter->setRate($this->_storeManager->getStore()->getBaseCurrency()->getRate($this->_storeManager->getStore()->getCurrentCurrency())); } elseif ($this->_storeManager->getStore()->getDefaultCurrency()) { $currencyFilter = $this->_storeManager->getStore()->getDefaultCurrency()->getFilter(); } else { $currencyFilter = new \Magento\Framework\Filter\Sprintf('%s', 2); } $rates = []; $allRates = $this->getAllRates(); foreach ($allRates as $rate) { $rates[$rate->getCarrier()]['title'] = $rate->getCarrierTitle(); $rates[$rate->getCarrier()]['methods'][$rate->getMethod()] = ['title' => $rate->getMethodTitle(), 'price' => $rate->getPrice(), 'price_formatted' => $currencyFilter->filter($rate->getPrice())]; } return $rates; }
public function testFilter() { $sprintfFilter = new \Magento\Framework\Filter\Sprintf('Formatted value: "%s"', 2, ',', ' '); $this->assertEquals('Formatted value: "1 234,57"', $sprintfFilter->filter(1234.56789)); }