/** * Set region to the attribute * * @param \Magento\Framework\Object $object * @return $this */ public function beforeSave($object) { if (is_numeric($object->getRegion())) { $region = $this->_regionFactory->create()->load((int) $object->getRegion()); if ($region) { $object->setRegionId($region->getId()); $object->setRegion($region->getCode()); } } return $this; }
/** * Get billing address request data * * @param \Magento\Framework\Object $address * @return array */ protected function _getBillingAddress(\Magento\Framework\Object $address) { $region = $address->getRegionCode() ? $address->getRegionCode() : $address->getRegion(); $request = array('billing_first_name' => $address->getFirstname(), 'billing_last_name' => $address->getLastname(), 'billing_city' => $address->getCity(), 'billing_state' => $region ? $region : $address->getCity(), 'billing_zip' => $address->getPostcode(), 'billing_country' => $address->getCountry()); // convert streets to tow lines format $street = $this->_customerAddress->convertStreetLines($address->getStreet(), 2); $request['billing_address1'] = isset($street[0]) ? $street[0] : ''; $request['billing_address2'] = isset($street[1]) ? $street[1] : ''; return $request; }
/** * Adopt specified address object to be compatible with Magento * * @param \Magento\Framework\Object $address * @return void */ protected function _applyStreetAndRegionWorkarounds(\Magento\Framework\Object $address) { // merge street addresses into 1 if ($address->hasStreet2()) { $address->setStreet(implode("\n", array($address->getStreet(), $address->getStreet2()))); $address->unsStreet2(); } // attempt to fetch region_id from directory if ($address->getCountryId() && $address->getRegion()) { $regions = $this->_countryFactory->create()->loadByCode($address->getCountryId())->getRegionCollection()->addRegionCodeOrNameFilter($address->getRegion())->setPageSize(1); foreach ($regions as $region) { $address->setRegionId($region->getId()); $address->setExportedKeys(array_merge($address->getExportedKeys(), array('region_id'))); break; } } }
/** * @param \Magento\Framework\Object $address * @param bool $html * @return string */ public function formatAddress(\Magento\Framework\Object $address, $html = false) { //TODO: is it still used? $address->getRegion(); $address->getCountry(); $template = $this->getData('address_template_' . ($html ? 'html' : 'plain')); if (empty($template)) { if (!$this->getId()) { $template = '{{firstname}} {{lastname}}'; } elseif (!$html) { $template = "{{firstname}} {{lastname}}\n{{company}}\n{{street1}}\n{{street2}}\n{{city}}, {{region}} {{postcode}}"; } else { $template = "{{firstname}} {{lastname}}<br/>\n{{street}}<br/>\n{{city}}, {{region}} {{postcode}}<br/>\nT: {{telephone}}"; } } $filter = new \Magento\Framework\Filter\Template\Simple(); $addressText = $filter->setData($address->getData())->filter($template); if ($html) { $addressText = preg_replace('#(<br\\s*/?>\\s*){2,}#im', '<br/>', $addressText); } else { $addressText = preg_replace('#(\\n\\s*){2,}#m', "\n", $addressText); } return $addressText; }