/** * Batch Subscription to MailChimp Lists * * @author Ruchi Kothari * @return bool "true" on Success, "false" otherwise * @throws SWIFT_Exception If the Class is not Loaded */ public function Subscribe() { if (!$this->GetIsClassLoaded()) { throw new SWIFT_Exception(SWIFT_CLASSNOTLOADED); return false; } $_SWIFT_UserSyncManagerObject = new SWIFT_UserSyncManager(); $_subscriptionResult = $_SWIFT_UserSyncManagerObject->BatchSubscribe(); $_errorString = ""; if (isset($_subscriptionResult['error'])) { $_errorString .= $_subscriptionResult['error']; } else { if (isset($_subscriptionResult['lists'])) { foreach ($_subscriptionResult['lists'] as $_list) { foreach ($_list['errors'] as $_error) { $_errorString .= $_error['email'] . ' failed'; $_errorString .= ' Code: ' . $_error['code']; $_errorString .= ' Message: ' . $_error['message']; } } } } if (!empty($_errorString)) { $_errorString = $this->Language->Get('mc_error') . $_errorString; SWIFT_Loader::LoadLibrary('ErrorLog:ErrorLog'); SWIFT_ErrorLog::Create(SWIFT_ErrorLog::TYPE_GENERAL, $_errorString); } return true; }
/** * Perform action(Subscription or Unsubscription) on a user * * @author Ruchi Kothari * * @param object $_SWIFT_UserObject SWIFT_User object * @param int $_unsubscribeNewsletter flag for subscription * @param array $_userDetails User details * * @return bool "true" on Success, "false" otherwise * @throws SWIFT_Exception If class is not loaded */ public function PerformAction($_SWIFT_UserObject, $_unsubscribeNewsletter, $_userDetails) { if (!$this->GetIsClassLoaded()) { throw new SWIFT_Exception(SWIFT_CLASSNOTLOADED); return false; } // SWIFT_Loader::LoadLibrary('User:UserProperty'); $_subscriptionResult = true; // Retrieve user unsubscribe property $_unsubscribeStatus = SWIFT_UserProperty::RetrieveOnUser($_SWIFT_UserObject, 'mc_unsubscribe'); if ($_unsubscribeNewsletter == 1 && $_unsubscribeStatus == '') { // Create user property if user doesn't want to subscribe SWIFT_UserProperty::CreateOrUpdate($_SWIFT_UserObject, 'mc_unsubscribe', 1); $_SWIFT_UserSyncManagerObject = new SWIFT_UserSyncManager(); $_subscriptionResult = $_SWIFT_UserSyncManagerObject->MemberUnsubscribe($_userDetails['emails']['existing']); } else { if ($_unsubscribeNewsletter == 0) { $_userSubscribeDetails = array(); $_userSubscribeDetails['emails'] = array(); if ($_unsubscribeStatus == 1) { // Delete user property if user want to subscribe SWIFT_UserProperty::DeleteOnName($_SWIFT_UserObject, 'mc_unsubscribe'); $_userSubscribeDetails['emails'] = $_userDetails['emails']['existing']; } if (!empty($_userDetails['emails']['new'])) { $_userSubscribeDetails['emails'] = array_merge($_userSubscribeDetails['emails'], $_userDetails['emails']['new']); } if (!empty($_userSubscribeDetails['emails'])) { $_userSubscribeDetails['fullname'] = $_userDetails['fullname']; $_SWIFT_UserSyncManagerObject = new SWIFT_UserSyncManager(); $_subscriptionResult = $_SWIFT_UserSyncManagerObject->MemberSubscribe($_userSubscribeDetails); } } } if (!empty($_userDetails['emails']['deleted'])) { $_SWIFT_UserSyncManagerObject = new SWIFT_UserSyncManager(); $_subscriptionResult = $_SWIFT_UserSyncManagerObject->MemberUnsubscribe($_userDetails['emails']['deleted'], true); } return $_subscriptionResult; }