You are here

function mailchimp_campaign_send_test_campaign in Mailchimp 7.3

Same name and namespace in other branches
  1. 7.5 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_send_test_campaign()
  2. 7.4 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_send_test_campaign()

Send MailChimp campaign.

1 call to mailchimp_campaign_send_test_campaign()
mailchimp_campaign_send_test_form_submit in modules/mailchimp_campaign/includes/mailchimp_campaign.admin.inc
Submit handler for mailchimp_campaign_send_test_form().

File

modules/mailchimp_campaign/mailchimp_campaign.module, line 427
Module file for mailchimp_campaign.

Code

function mailchimp_campaign_send_test_campaign(MailChimpCampaign $campaign, $recipients = array()) {
  $mcapi = mailchimp_get_api_object();

  // Send campaign.
  try {
    if (!$mcapi) {
      throw new MailchimpException('Cannot send campaign without Mailchimp API. Check API key has been entered.');
    }
    $result = $mcapi->campaigns
      ->sendTest($campaign->mc_campaign_id, $recipients);
  } catch (Mailchimp_Error $e) {
    drupal_set_message($e
      ->getMessage(), 'error');
    watchdog('mailchimp_campaign', 'An error occurred while sending a test of this campaign: @msg', array(
      '@msg' => $e
        ->getMessage(),
    ), WATCHDOG_ERROR);
    return FALSE;
  }
  if (isset($result['complete']) && $result['complete'] === TRUE) {

    // Log action, and notify the user.
    watchdog('mailchimp_campaign', 'MailChimp test message for campaign %name has been sent to %recipients.', array(
      '%name' => $campaign
        ->label(),
      '%recipients' => implode(', ', $recipients),
    ));
    return TRUE;
  }
  elseif (isset($result['status']) && $result['status'] == 'error') {

    // Display and log error, if any.
    $message = 'MailChimp error. The campaign was not sent.';
    _mailchimp_campaign_mcapi_error_message($result, $message);
  }
  return FALSE;
}