You are here

function _campaignmonitor_get_subscriber in Campaign Monitor 6.3

Same name and namespace in other branches
  1. 5.2 campaignmonitor.module \_campaignmonitor_get_subscriber()
  2. 5 campaignmonitor.module \_campaignmonitor_get_subscriber()
  3. 6 campaignmonitor.module \_campaignmonitor_get_subscriber()
  4. 6.2 campaignmonitor.module \_campaignmonitor_get_subscriber()

Get information form campaign mointor about a subscribed user base on list ID and e-mail.

Parameters

string $api_key:

string $list_id:

string $email:

boolean $show_errors:

Return value

mixed an array with information will be return.

1 call to _campaignmonitor_get_subscriber()
campaignmonitor_subscribe_form in ./campaignmonitor.module

File

./campaignmonitor.module, line 671
Module that plugs in Campaign Monitor functionality to your Drupal web site. For Campaign Monitor information see: http://www.campaignmonitor.com/

Code

function _campaignmonitor_get_subscriber($api_key, $list_id, $email, $show_errors = FALSE) {
  $retval = array(
    "name" => '',
    "email" => $email,
  );
  $cm = new CampaignMonitor($api_key, $client_id, $campaign_id, $list_id);
  $result = $cm
    ->subscriberGetSingleSubscriber($list_id, $email);
  if (empty($result) || $result['anyType']['Code'] != 0) {
    if (empty($result)) {
      watchdog('campaignmonitor', 'There was a problem with the connection to Campaign Monitor.');
    }
    else {
      watchdog('campaignmonitor', 'Code - %code, Message - %message', array(
        '%code' => $result['anyType']['Code'],
        '%message' => $result['anyType']['Message'],
      ));
    }
    drupal_set_message(CM_ERROR, 'error', FALSE);
  }
  else {
    $retval['name'] = $result['anyType']['Name'];
    $custom_fields = array();
    $c = $result['anyType']['CustomFields']['SubscriberCustomField'];
    if (!empty($c['Key'])) {
      $custom_fields = array();
      $custom_fields[$c['Key']] = $c['Value'];
    }
    else {
      if (!empty($c)) {
        foreach ($c as $field) {
          if (!empty($custom_fields[$field['Key']])) {
            if (is_array($custom_fields[$field['Key']])) {
              $values = $custom_fields[$field['Key']];
            }
            else {
              $values = array();
              $values[] = $custom_fields[$field['Key']];
            }
            $values[] = $field['Value'];
            $custom_fields[$field['Key']] = $values;
          }
          else {
            $custom_fields[$field['Key']] = $field['Value'];
          }
        }
      }
    }
    $retval['CustomFields'] = $custom_fields;
  }
  return $retval;
}