/** * Find and return information about a subscriber for a list * * @param string $listId * @param Interspire_EmailIntegration_Subscription $subscriber * @return Interspire_EmailIntegration_Subscription_Existing or false if the subscriber was not found */ public function findListSubscriber ($listId, Interspire_EmailIntegration_Subscription $subscription) { /** @var mysqldb */ $db = $GLOBALS['ISC_CLASS_DB']; $result = $db->FetchOne("SELECT * FROM `[|PREFIX|]subscribers` WHERE subemail = '" . $db->Quote($insert['subemail']) . "'"); if (!$result) { return false; } $return = new Interspire_EmailIntegration_Subscription_Existing; $return->setSubscriptionEmail($result['subemail']); $return->setSubscriptionData($result); return $return; }
/** * Find and return information about a subscriber for a list * * @param string $listId * @param Interspire_EmailIntegration_Subscription $subscriber * @return Interspire_EmailIntegration_Subscription_Existing or false if the subscriber was not found */ public function findListSubscriber ($listId, Interspire_EmailIntegration_Subscription $subscriber) { $api = $this->getApiInstance(); $result = $api->listMemberInfo($listId, $subscriber->getSubscriptionEmail()); if (!is_array($result)) { return false; } $return = new Interspire_EmailIntegration_Subscription_Existing; $return->setSubscriptionEmail($result['email']); if (isset($result['ip_opt']) && $result['ip_opt']) { $return->setSubscriptionIP($result['ip_opt']); } else if (isset($result['ip_signup']) && $result['ip_signup']) { $return->setSubscriptionIP($result['ip_signup']); } $return->setSubscriptionData($result['merges']); return $return; }
/** * Find and return information about a subscriber for a list * * @param string $listId * @param Interspire_EmailIntegration_Subscription $subscriber * @return Interspire_EmailIntegration_Subscription_Existing or false if the subscriber was not found */ public function findListSubscriber ($listId, Interspire_EmailIntegration_Subscription $subscriber) { $api = $this->getApiInstance(); /** @var ISC_LOG */ $log = $GLOBALS['ISC_CLASS_LOG']; try { $result = $api->getSubscribers($listId, array( 'Email' => $subscriber->getSubscriptionEmail(), )); if (!$result || !$result->isSuccess()) { return false; } } catch (Interspire_EmailIntegration_EmailMarketer_Exception $exception) { $log->LogSystemError(array('emailintegration', $this->GetName()), GetLang(get_class($exception) . '_Message')); return false; } $result = $result->getData()->subscriberlist->children(); if (empty($result)) { return false; } $result = $result[0]; $subscriberId = (string)$result->subscriberid; $return = new Interspire_EmailIntegration_Subscription_Existing; $return->setSubscriptionEmail($result->emailaddress); // try and find custom field information to add to the subscription data -- as far as I can tell this is the only way of doing it with IEM $listFields = $this->getListFields($listId); $customFieldIds = array(); foreach ($listFields as $listField) { $customFieldIds[] = $listField['provider_field_id']; } unset($listFields); $data = array(); $result = $api->getAllSubscriberCustomFields($listId, array(), $subscriberId, $customFieldIds); if ($result && $result->isSuccess()) { foreach ($result->getData()->item->children() as /** @var SimpleXMLElement */$field) { $data[(string)$field->fieldid] = (string)$field->data; } } $return->setSubscriptionData($data); return $return; }