Source of file ShopUserInfo.php
Size: 1,486 Bytes - Last Modified: 2021-12-23T10:24:58+00:00
/var/www/docs.ssmods.com/process/src/src/ShopUserInfo.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | <?php namespace SilverShop; use SilverShop\Model\Address; use SilverStripe\Core\Injector\Injectable; /** * Collects and stores data about the user. Keep this data in session. */ class ShopUserInfo { use Injectable; /** * Get an array of location data * * @return array location data */ public function getLocation() { return $this->getLocationData(); } public function setLocation(array $location) { $this->setLocationData($location); return $this; } /** * Get location of user * * @param Address $address location * @return null|Address */ public function getAddress() { $address = null; if ($data = $this->getLocationData()) { $address = Address::create(); $address->update($data); $address->ID = 0; //ensure not in db } return $address; } /** * Set location of user * * @param Address $address location * @return $this */ public function setAddress(Address $address) { $this->setLocationData($address->toMap()); return $this; } protected function getLocationData() { $data = ShopTools::getSession()->get('UserInfo.Location'); return is_array($data) ? $data : []; } protected function setLocationData(array $data) { ShopTools::getSession()->set('UserInfo.Location', $data); } } |