/** * returns a real or fake member against which we save the wishlist. * @return Member | WishListMember */ static function get_member_for_wishlist() { $member = Member::currentMember(); if (!$member) { $wishListMemberID = Session::get(self::get_session_variable_name() . "_wishListMemberID"); if ($wishListMemberID) { if ($wishListMember = DataObject::get_by_id("WishListMember", intval($wishListMemberID))) { //do nothing } else { $wishListMemberID = null; } } if (!$wishListMemberID) { $wishListMember = new WishListMember(); $wishListMember->write(); Session::set(self::get_session_variable_name() . "_wishListMemberID", $wishListMember->ID); } return $wishListMember; } else { //copy if the member does not have a wish list, but the session does. if (!$member->WishList) { if (!$member->IsAdmin()) { $wishListMemberID = Session::get(self::get_session_variable_name() . "_wishListMemberID"); if ($wishListMemberID) { if ($wishListMember = DataObject::get_by_id("WishListMember", intval($wishListMemberID))) { if ($wishListMember->WishList) { $member->WishList = $wishListMember->WishList; $member->write(); } $wishListMember->delete(); Session::clear(self::get_session_variable_name() . "_wishListMemberID"); } } } } return $member; } }