protected function resolveMembers($unsubscribed, Contact $contact, $marketingListId, $optOut) { if ($optOut) { $members = MarketingListMember::getByContactIdAndSubscribed($contact->id, $unsubscribed); } else { $members = MarketingListMember::getByMarketingListIdContactIdAndUnsubscribed($marketingListId, $contact->id, $unsubscribed); } if (!is_array($members) && $members !== false) { $members = array($members); } if (empty($members)) { $marketingList = MarketingList::getById(intval($marketingListId)); if ($unsubscribed === 1 && !empty($marketingList) && $marketingList->anyoneCanSubscribe && !$marketingList->memberAlreadyExists($contact->id)) { $members[0] = new MarketingListMember(); $members[0]->contact = $contact; $members[0]->marketingList = $marketingList; } else { return false; } } return $members; }