if (class_exists('RegisterPlusReduxPlugin')) {
        print '<p><strong>You are using <a target="_blank" href="http://wordpress.org/extend/plugins/register-plus-redux/">Register Plus Redux</a></strong> which has a known issue preventing first and last name being synchronized with MailChimp. <em>AutoChimp can fix this</em>.</p>';
        print '<fieldset style="margin-left: 20px;">';
        print "<p><input type=CHECKBOX value=\"on_fix_regplusredux\" name=\"on_fix_regplusredux\" ";
        if ('1' === $fixRegPlusRedux) {
            print "checked";
        }
        print '> Patch Register Plus Redux and sync first/last name with your selected mailing list. <em>Recommended <strong>ON</strong></em>. <strong>Note:</strong> You must enable "<em>Require new users enter a password during registration...</em>" in your Register Plus Redux options in order for the AutoChimp patch to work.</p>';
        print '<p><em>News:</em> Sorry to the folks who were hoping that Register Plus Redux version 3.7.0 and up would fix this.  This patch is still required when running Register Plus Redux.  More info can be found <a href="http://radiok.info/blog/conflicts-begone/" target="_blank">here</a>.</p>';
        print '</fieldset>';
    }
    $syncPlugins = new ACSyncPlugins();
    $syncPlugins->ShowPluginSettings();
    $publishPlugins = new ACPublishPlugins();
    $publishPlugins->ShowPluginSettings();
    $contentPlugins = new ACContentPlugins();
    $contentPlugins->ShowPluginSettings();
    ?>
	
	<div class="submit"><input type="submit" name="save_plugin_options" class="button-primary" value="Save Options" /></div>
	
	<div class="clear"></div>
	</div>
	</div>

<?php 
}
// End of all tab-specific code
?>

</form>
Beispiel #2
0
function AC_CreateCampaignFromPost($api, $postID, $listID, $interestGroupName, $categoryTemplateID)
{
    // Does the user only want to create campaigns once?
    if ('1' == get_option(WP88_MC_CREATE_CAMPAIGN_ONCE)) {
        if ('1' == get_post_meta($postID, WP88_MC_CAMPAIGN_CREATED, true)) {
            return '-1';
        }
        // Don't create the campaign again!
    }
    // Get the info on this post
    $post = get_post($postID);
    // If the post is somehow in an unsupported state (sometimes from email
    // posts), then just skip the post.
    if ('pending' == $post->post_status || 'draft' == $post->post_status || 'private' == $post->post_status) {
        return '-1';
        // Don't create the campaign yet.
    }
    // Get info on the list
    $filters = array();
    $filters['list_id'] = $listID;
    $lists = $api->lists($filters);
    $list = $lists['data'][0];
    // Time to start creating the campaign...
    // First, create the options array
    $htmlContentTag = 'html';
    $options = array();
    $options['list_id'] = $listID;
    $options['subject'] = $post->post_title;
    $options['from_email'] = $list['default_from_email'];
    $options['from_name'] = $list['default_from_name'];
    $options['to_email'] = '*|FNAME|*';
    $options['tracking'] = array('opens' => true, 'html_clicks' => true, 'text_clicks' => false);
    $options['authenticate'] = true;
    // See if a template should be used
    if (0 != strcmp($categoryTemplateID, WP88_NONE)) {
        $options['template_id'] = $categoryTemplateID;
        // 'main' is the name of the section that will be replaced.  This is a
        // hardcoded decision.  Keeps things simple.  To view the sections of
        // a template, use MailChimp's templateInfo() function.  For more
        // information, go here:
        // http://apidocs.mailchimp.com/api/1.3/templateinfo.func.php
        // You need the campaign ID.  That can be retrieved with campaigns().
        $htmlContentTag = 'html_main';
    }
    // Start generating content
    $content = array();
    $postContent = '';
    // Get the excerpt option; if on, then show the excerpt
    if ('1' === get_option(WP88_MC_CAMPAIGN_EXCERPT_ONLY)) {
        if (0 == strlen($post->post_excerpt)) {
            // Handmade function which mimics wp_trim_excerpt() (that function won't operate
            // on a non-empty string)
            $postContent = AC_TrimExcerpt($post->post_content);
        } else {
            $postContent = apply_filters('the_excerpt', $post->post_excerpt);
            // Add on a "Read the post" link here
            $permalink = get_permalink($postID);
            $postContent .= "<p>Read the post <a href=\"{$permalink}\">here</a>.</p>";
            // See http://codex.wordpress.org/Function_Reference/the_content, which
            // suggests adding this code:
            $postContent = str_replace(']]>', ']]&gt;', $postContent);
        }
        // Set the text content variables
        $content['text'] = strip_tags($postContent);
    } else {
        // Run the full text through the content plugins
        $contentPlugins = new ACContentPlugins();
        $postContent = $contentPlugins->ConvertShortcode($post->post_content);
        // Text version isn't run through the content plugins
        $textPostContent = apply_filters('the_content', $post->post_content);
        $content['text'] = strip_tags($textPostContent);
    }
    // Set the content variables
    $content[$htmlContentTag] = $postContent;
    // Segmentation, if any (Interest groups)
    $segment_opts = NULL;
    if (0 != strcmp($interestGroupName, WP88_ANY)) {
        $group = $api->listInterestGroupings($listID);
        if (NULL != $group) {
            $interestID = $group[0]['id'];
            $conditions = array();
            $conditions[] = array('field' => "interests-{$interestID}", 'op' => 'all', 'value' => $interestGroupName);
            $segment_opts = array('match' => 'all', 'conditions' => $conditions);
        }
    }
    // More info here:  http://apidocs.mailchimp.com/api/1.3/campaigncreate.func.php
    $result = $api->campaignCreate('regular', $options, $content, $segment_opts);
    if ($api->errorCode) {
        // Set latest activity - displayed in the admin panel
        update_option(WP88_MC_LAST_CAMPAIGN_ERROR, "Problem with campaign with title '{$post->post_title}'.  Error Code: {$api->errorCode}, Message: {$api->errorMessage}");
        $result = "0";
    } else {
        // Set latest activity
        update_option(WP88_MC_LAST_CAMPAIGN_ERROR, "Your latest campaign created is titled '{$post->post_title}' with ID: {$result}");
        // Mark this post as having a campaign created from it.
        add_post_meta($postID, WP88_MC_CAMPAIGN_CREATED, '1');
    }
    // Done
    return $result;
}