You are here

function mailchimp_campaign_send_campaign in Mailchimp 7.3

Same name and namespace in other branches
  1. 8 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_send_campaign()
  2. 7.5 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_send_campaign()
  3. 7.2 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_send_campaign()
  4. 7.4 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_send_campaign()
  5. 2.x modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_send_campaign()

Send MailChimp campaign.

1 call to mailchimp_campaign_send_campaign()
mailchimp_campaign_send_form_submit in modules/mailchimp_campaign/includes/mailchimp_campaign.admin.inc
Submit handler for mailchimp_campaign_delete_list_form().

File

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

Code

function mailchimp_campaign_send_campaign(MailChimpCampaign $campaign) {
  $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
      ->send($campaign->mc_campaign_id);
  } catch (Mailchimp_Error $e) {
    drupal_set_message($e
      ->getMessage(), 'error');
    watchdog('mailchimp_campaign', 'An error occurred while sending to 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 campaign %name has been sent.', array(
      '%name' => $campaign
        ->label(),
    ));
    entity_get_controller('mailchimp_campaign')
      ->resetCache(array(
      $campaign
        ->identifier(),
    ));
    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;
}