function mailchimp_campaign_save_campaign in Mailchimp 7.2
Same name and namespace in other branches
- 8 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_save_campaign()
- 7.5 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_save_campaign()
- 7.3 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_save_campaign()
- 7.4 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_save_campaign()
- 2.x modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_save_campaign()
Save a campaign in MailChimp and as a Drupal entity.
Parameters
$template:
$options:
null $campaign_id:
Return value
string New or existing campaign ID.
1 call to mailchimp_campaign_save_campaign()
- mailchimp_campaign_campaign_form_submit in modules/
mailchimp_campaign/ mailchimp_campaign.admin.inc - Submit handler for mailchimp_campaign_campaign_form().
File
- modules/
mailchimp_campaign/ mailchimp_campaign.module, line 204
Code
function mailchimp_campaign_save_campaign($template, $options, $campaign_id = NULL) {
$mcapi = mailchimp_get_api_object();
$options += array(
'generate_text' => TRUE,
'tracking' => array(
'opens' => TRUE,
'html_clicks' => TRUE,
'text_clicks' => TRUE,
),
);
// convert template to content by running through formatter
$content = mailchimp_campaign_render_template($template);
// Save campaign to MailChimp. (Only regular campaigns are supported)
$is_new = empty($campaign_id);
if ($is_new) {
$campaign_id = $mcapi
->campaignCreate('regular', $options, $content);
}
else {
// updates must be done one value at a time
$values = $options += array(
'content' => $content,
);
foreach ($values as $key => $value) {
$mcapi
->campaignUpdate($campaign_id, $key, $value);
}
}
if ($mcapi->errorCode) {
// Display and log error, if any.
$message = 'MailChimp error. The campaign was not saved.';
_mailchimp_campaign_mcapi_error_message($mcapi, $message);
}
else {
drupal_set_message(t('Campaign %name (%cid) was successfully saved.', array(
'%name' => $options['title'],
'%cid' => $campaign_id,
)));
// save the campaign entity
$campaign = entity_create('mailchimp_campaign', array(
'mc_campaign_id' => $campaign_id,
'template' => $template,
'is_new' => $is_new,
));
mailchimp_campaign_save($campaign);
// clear cached data for this campaign
mailchimp_campaign_get_campaigns(array(
$campaign_id,
), TRUE);
}
return $campaign_id;
}