You are here

function mailchimp_campaign_send_campaign in Mailchimp 7.4

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.3 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 414
Module file for mailchimp_campaign.

Code

function mailchimp_campaign_send_campaign(MailChimpCampaign $campaign) {

  /* @var \Mailchimp\MailchimpCampaigns $mc_campaign */
  $mc_campaign = mailchimp_get_api_object('MailchimpCampaigns');

  // Send campaign.
  try {
    if (!$mc_campaign) {
      throw new MailchimpException('Cannot send campaign without Mailchimp API. Check API key has been entered.');
    }
    $mc_campaign
      ->send($campaign->mc_campaign_id);
    $campaign = $mc_campaign
      ->getCampaign($campaign->mc_campaign_id);
    if ($campaign->status == MAILCHIMP_STATUS_SENT) {

      // 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;
    }
  } catch (Exception $e) {
    drupal_set_message($e
      ->getMessage(), 'error');
    watchdog('mailchimp_campaign', 'An error occurred while sending to this campaign: %message', array(
      'message' => $e
        ->getMessage(),
    ), WATCHDOG_ERROR);
  }
  return FALSE;
}