/** * Update a contact with current properties * @param Contact $Contact - Contact object * @return Contact */ public function updateContact(Contact $Contact){ $ContactsCollection = new ContactsCollection($this->CTCTRequest); return $ContactsCollection->updateContact($Contact); }
function signup_user_constant_contact($firstname, $lastname, $email, $list) { global $premise_base; require_once PREMISE_LIB_DIR . 'constant_contact_api/constant_contact_api.php'; $settings = $premise_base->get_settings(); $optin = $settings['optin']; $premise_base->setup_constant_contact($this->_optin_ConstantContactKey, $optin['constant-contact-username'], $optin['constant-contact-password']); $collection = new ContactsCollection(); list($search) = $collection->searchByEmail($email); if (!empty($search)) { foreach ($search as $possible) { if ($email == $possible->getEmailAddress()) { $contact = $collection->getContact($possible->getLink()); break; } } } $listKey = 'http://api.constantcontact.com/ws/customers/' . $optin['constant-contact-username'] . '/lists/' . $list; if ($contact) { $existingLists = $contact->getLists(); if (in_array($listKey, $existingLists)) { return array('error' => __('You have already subscribed to this mailing list', 'premise')); } else { $contact->setLists($listKey); } $contact->setFirstName($firstname); $contact->setLastName($lastname); $result = $collection->updateContact($contact->getId(), $contact); } else { $contact = new Contact(); $contact->setFirstName($firstname); $contact->setLastName($lastname); $contact->setEmailAddress($email); $contact->setLists($listKey); $result = $collection->createContact($contact); } $first = substr((string) $result, 0, 1); if ($first != 2) { return array('error' => __('Could not subscribe you to this mailing list', 'premise')); } return true; }