/** * Generate and return the address label * @param array * @return string */ public function renderLabel($arrAddress) { $objAddress = new \Isotope\Model\Address(); $objAddress->setRow($arrAddress); $strBuffer = $objAddress->generateHtml(); $strBuffer .= '<div style="color:#b3b3b3;margin-top:8px">' . $GLOBALS['TL_LANG']['tl_iso_address']['store_id'][0] . ' ' . $arrAddress['store_id']; if ($arrAddress['isDefaultBilling']) { $strBuffer .= ', ' . $GLOBALS['TL_LANG']['tl_iso_address']['isDefaultBilling'][0]; } if ($arrAddress['isDefaultShipping']) { $strBuffer .= ', ' . $GLOBALS['TL_LANG']['tl_iso_address']['isDefaultShipping'][0]; } $strBuffer .= '</div>'; return $strBuffer; }
/** * Make sure the addresses belong to this collection only, so they will never be modified */ protected function createPrivateAddresses() { $this->ensureNotLocked(); if (!$this->id) { throw new \UnderflowException('Product collection must be saved before creating unique addresses.'); } $objBillingAddress = $this->getBillingAddress(); $objShippingAddress = $this->getShippingAddress(); // Store address in address book if ($this->iso_addToAddressbook && $this->member > 0) { if (null !== $objBillingAddress && $objBillingAddress->ptable != \MemberModel::getTable()) { $objAddress = clone $objBillingAddress; $objAddress->pid = $this->member; $objAddress->tstamp = time(); $objAddress->ptable = \MemberModel::getTable(); $objAddress->store_id = $this->store_id; $objAddress->save(); $this->updateDefaultAddress($objAddress); } if (null !== $objBillingAddress && null !== $objShippingAddress && $objBillingAddress->id != $objShippingAddress->id && $objShippingAddress->ptable != \MemberModel::getTable()) { $objAddress = clone $objShippingAddress; $objAddress->pid = $this->member; $objAddress->tstamp = time(); $objAddress->ptable = \MemberModel::getTable(); $objAddress->store_id = $this->store_id; $objAddress->save(); $this->updateDefaultAddress($objAddress); } } /** @type Config $config */ $config = $this->getRelated('config_id'); $billingFields = null === $config ? array() : $config->getBillingFields(); $shippingFields = null === $config ? array() : $config->getShippingFields(); if (null !== $objBillingAddress && ($objBillingAddress->ptable != static::$strTable || $objBillingAddress->pid != $this->id)) { $arrData = array_intersect_key($objBillingAddress->row(), array_flip($billingFields)); $objNew = new Address(); $objNew->setRow($arrData); $objNew->pid = $this->id; $objNew->tstamp = time(); $objNew->ptable = static::$strTable; $objNew->store_id = $this->store_id; $objNew->save(); $this->setBillingAddress($objNew); if (null !== $objShippingAddress && $objBillingAddress->id == $objShippingAddress->id) { $this->setShippingAddress($objNew); // Stop here, we do not need to check shipping address return; } } if (null !== $objShippingAddress && ($objShippingAddress->ptable != static::$strTable || $objShippingAddress->pid != $this->id)) { $arrData = array_intersect_key($objShippingAddress->row(), array_flip($shippingFields)); $objNew = new Address(); $objNew->setRow($arrData); $objNew->pid = $this->id; $objNew->tstamp = time(); $objNew->ptable = static::$strTable; $objNew->store_id = $this->store_id; $objNew->save(); $this->setShippingAddress($objNew); } }
/** * Create a new address for a member and automatically set default properties * @param int * @param array|null * @return Address */ public static function createForMember($intMember, $arrFill = null) { $objAddress = new Address(); $arrData = array('pid' => $intMember, 'ptable' => 'tl_member', 'tstamp' => time(), 'store_id' => Isotope::getCart()->store_id); if (!empty($arrFill) && is_array($arrFill) && ($objMember = \MemberModel::findByPk($intMember)) !== null) { $arrData = array_intersect_key(array_merge($objMember->row(), $arrData, array('street_1' => $objMember->street, 'subdivision' => strtoupper($objMember->country . '-' . $objMember->state))), array_flip($arrFill)); } $objAddress->setRow($arrData); return $objAddress; }