Version Description
Download this release
Release Info
Developer | mc_jesse |
Plugin | MailChimp List Subscribe Form |
Version | 0.1 |
Comparing to | |
See all releases |
Code changes from version 1.0.2 to 0.1
- MCAPI.class.php +99 -427
- mailchimp.php +192 -276
- po/mailchimp_i18n-en_US.mo +0 -0
- po/mailchimp_i18n-en_US.po +0 -269
- readme.txt +7 -36
MCAPI.class.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
class MCAPI {
|
4 |
-
var $version = "1.
|
5 |
var $errorMessage;
|
6 |
var $errorCode;
|
7 |
|
@@ -21,9 +21,9 @@ class MCAPI {
|
|
21 |
var $chunkSize = 8192;
|
22 |
|
23 |
/**
|
24 |
-
* Cache the user
|
25 |
*/
|
26 |
-
var $
|
27 |
|
28 |
/**
|
29 |
* Connect to the MailChimp API for a given list. All MCAPI calls require login before functioning
|
@@ -32,14 +32,8 @@ class MCAPI {
|
|
32 |
* @param string $password Your MailChimp login password - always required
|
33 |
*/
|
34 |
function MCAPI($username, $password) {
|
35 |
-
//do more "caching" of the uuid for those people that keep instantiating this...
|
36 |
$this->apiUrl = parse_url("http://api.mailchimp.com/" . $this->version . "/?output=php");
|
37 |
-
|
38 |
-
$this->api_key = $GLOBALS["mc_api_key"];
|
39 |
-
} else {
|
40 |
-
$this->api_key = $this->callServer("login", array("username" => $username, "password" => $password));
|
41 |
-
$GLOBALS["mc_api_key"] = $this->api_key;
|
42 |
-
}
|
43 |
}
|
44 |
|
45 |
/**
|
@@ -48,7 +42,7 @@ class MCAPI {
|
|
48 |
* @section Campaign Related
|
49 |
* @example xml-rpc_campaignUnschedule.php
|
50 |
*
|
51 |
-
* @param string $cid the id
|
52 |
* @return boolean true on success
|
53 |
*/
|
54 |
function campaignUnschedule($cid) {
|
@@ -63,53 +57,24 @@ class MCAPI {
|
|
63 |
* @section Campaign Related
|
64 |
* @example xml-rpc_campaignSchedule.php
|
65 |
*
|
66 |
-
* @param string $cid the id
|
67 |
-
* @param string $schedule_time the time to schedule the campaign
|
68 |
-
* @param string $schedule_time_b optional -the time to schedule Group B of an A/B Split "schedule" campaign - in YYYY-MM-DD HH:II:SS format in <strong>GMT</strong>
|
69 |
* @return boolean true on success
|
70 |
*/
|
71 |
-
function campaignSchedule($cid, $schedule_time
|
72 |
$params = array();
|
73 |
$params["cid"] = $cid;
|
74 |
$params["schedule_time"] = $schedule_time;
|
75 |
-
$params["schedule_time_b"] = $schedule_time_b;
|
76 |
return $this->callServer("campaignSchedule", $params);
|
77 |
}
|
78 |
|
79 |
-
/**
|
80 |
-
* Resume sending a RSS campaign
|
81 |
-
*
|
82 |
-
* @section Campaign Related
|
83 |
-
*
|
84 |
-
* @param string $cid the id of the campaign to pause
|
85 |
-
* @return boolean true on success
|
86 |
-
*/
|
87 |
-
function campaignResume($cid) {
|
88 |
-
$params = array();
|
89 |
-
$params["cid"] = $cid;
|
90 |
-
return $this->callServer("campaignResume", $params);
|
91 |
-
}
|
92 |
-
|
93 |
-
/**
|
94 |
-
* Pause a RSS campaign from sending
|
95 |
-
*
|
96 |
-
* @section Campaign Related
|
97 |
-
*
|
98 |
-
* @param string $cid the id of the campaign to pause
|
99 |
-
* @return boolean true on success
|
100 |
-
*/
|
101 |
-
function campaignPause($cid) {
|
102 |
-
$params = array();
|
103 |
-
$params["cid"] = $cid;
|
104 |
-
return $this->callServer("campaignPause", $params);
|
105 |
-
}
|
106 |
-
|
107 |
/**
|
108 |
* Send a given campaign immediately
|
109 |
*
|
110 |
* @section Campaign Related
|
|
|
111 |
*
|
112 |
-
* @param string $cid the id
|
113 |
* @return boolean true on success
|
114 |
*/
|
115 |
function campaignSendNow($cid) {
|
@@ -124,9 +89,9 @@ class MCAPI {
|
|
124 |
* @section Campaign Related
|
125 |
* @example xml-rpc_campaignSendTest.php
|
126 |
*
|
127 |
-
* @param string $cid the id
|
128 |
-
* @param
|
129 |
-
* @param string $send_type optional
|
130 |
* @return boolean true on success
|
131 |
*/
|
132 |
function campaignSendTest($cid, $test_emails=array (
|
@@ -155,134 +120,49 @@ class MCAPI {
|
|
155 |
return $this->callServer("campaignTemplates", $params);
|
156 |
}
|
157 |
|
158 |
-
/**
|
159 |
-
* Allows one to test their segmentation rules before creating a campaign using them
|
160 |
-
*
|
161 |
-
* @section Campaign Related
|
162 |
-
* @example xml-rpc_campaignSegmentTest.php
|
163 |
-
*
|
164 |
-
* @param string $list_id the list to test segmentation on - get lists using lists()
|
165 |
-
* @param array $options with 2 keys:
|
166 |
-
string "match" controls whether to use AND or OR when applying your options - expects "<strong>any</strong>" (for OR) or "<strong>all</strong>" (for AND)
|
167 |
-
array "conditions" - up to 10 different criteria to apply while segmenting. Each criteria row should contain 3 keys - "<strong>field</strong>", "<strong>op</strong>", or "<strong>value</strong>" based on these definitions:
|
168 |
-
|
169 |
-
Field = "<strong>date</strong>" : Select based on various dates we track
|
170 |
-
Valid Op(eration): <strong>eq</strong> (is) / <strong>gt</strong> (after) / <strong>lt</strong> (before)
|
171 |
-
Valid Values:
|
172 |
-
string last_campaign_sent uses the date of the last campaign sent
|
173 |
-
string campaign_id - uses the send date of the campaign that carriers the Id submitted - see campaigns()
|
174 |
-
string YYYY-MM-DD - ny date in the form of YYYY-MM-DD - <i>note:</i> anything that appears to start with YYYY will be treated as a date
|
175 |
-
|
176 |
-
Field = "<strong>interests</strong>":
|
177 |
-
Valid Op(erations): <strong>one</strong> / <strong>none</strong> / <strong>all</strong>
|
178 |
-
Valid Values: a comma delimited of interest groups for the list - see listInterestGroups()
|
179 |
-
|
180 |
-
Field = "<strong>aim</strong>"
|
181 |
-
Valid Op(erations): <strong>open</strong> / <strong>noopen</strong> / <strong>click</strong> / <strong>noclick</strong>
|
182 |
-
Valid Values: "<strong>any</strong>" or a valid AIM-enabled Campaign that has been sent
|
183 |
-
|
184 |
-
Default Field = A Merge Var. Use <strong>Merge0-Merge15</strong> or the <strong>Custom Tag</strong> you've setup for your merge field - see listMergeVars()
|
185 |
-
Valid Op(erations):
|
186 |
-
<strong>eq</strong> (=)/<strong>ne</strong>(!=)/<strong>gt</strong>(>)/<strong>lt</strong>(<)/<strong>like</strong>(like '%blah%')/<strong>nlike</strong>(not like '%blah%')/<strong>starts</strong>(like 'blah%')/<strong>ends</strong>(like '%blah')
|
187 |
-
Valid Values: any string
|
188 |
-
* @return integer total The total number of subscribers matching your segmentation options
|
189 |
-
*/
|
190 |
-
function campaignSegmentTest($list_id, $options) {
|
191 |
-
$params = array();
|
192 |
-
$params["list_id"] = $list_id;
|
193 |
-
$params["options"] = $options;
|
194 |
-
return $this->callServer("campaignSegmentTest", $params);
|
195 |
-
}
|
196 |
-
|
197 |
/**
|
198 |
* Create a new draft campaign to send
|
199 |
*
|
200 |
* @section Campaign Related
|
201 |
-
* @example
|
202 |
-
*
|
203 |
-
* @
|
204 |
-
* @
|
205 |
-
*
|
206 |
-
* @param string $
|
207 |
-
* @param array $
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
array tracking optional - set which recipient actions will be tracked, as a struct of boolean values with the following keys: "opens", "html_clicks", and "text_clicks". By default, opens and HTML clicks will be tracked.
|
214 |
-
string title optional - an internal name to use for this campaign. By default, the campaign subject will be used.
|
215 |
-
boolean authenticate optional - set to true to enable SenderID, DomainKeys, and DKIM authentication, defaults to false.
|
216 |
-
array analytics optional - if provided, use a struct with "service type" as a key and the "service tag" as a value. For Google, this should be "google"=>"your_google_analytics_key_here". Note that only "google" is currently supported - a Google Analytics tags will be added to all links in the campaign with this string attached. Others may be added in the future
|
217 |
-
boolean inline_css optional Whether or not css should be automatically inlined when this campaign is sent, defaults to false.
|
218 |
-
boolean generate_text optional Whether of not to auto-generate your Text content from the HTML content. Note that this will be ignored if the Text part of the content passed is not empty, defaults to false.
|
219 |
-
|
220 |
-
* @param array $content the content for this campaign - use a struct with the following keys:
|
221 |
-
"html" for pasted HTML content
|
222 |
-
"text" for the plain-text version
|
223 |
-
"url" to have us pull in content from a URL (will replace any "html" content you pass in - can be used with "generate_text" option as well).
|
224 |
-
|
225 |
-
If you chose a template instead of pasting in your HTML content, then use "html_" followed by the template sections as keys - for example, use a key of "html_MAIN" to fill in the "MAIN" section of a template. Supported template sections include: "html_HEADER", "html_MAIN", "html_SIDECOLUMN", and "html_FOOTER"
|
226 |
-
* @param array $segment_opts optional - if you wish to do Segmentation with this campaign this array should contain: see campaignSegmentTest(). You should test your options against campaignSegmentTest() as campaignCreate() will not allow you to set a segment that includes no members.
|
227 |
-
* @param array $type_opts optional -
|
228 |
-
For RSS Campaigns this, array should contain:
|
229 |
-
string url the URL to pull RSS content from - it will be verified and must exist
|
230 |
-
|
231 |
-
For A/B Split campaigns, this array should contain:
|
232 |
-
string split_test The values to segment based on. Currently, one of: "subject", "from_name", "schedule". NOTE, for "schedule", you will need to call campaignSchedule() separately!
|
233 |
-
string pick_winner How the winner will be picked, one of: "opens" (by the open_rate), "clicks" (by the click rate), "manual" (you pick manually)
|
234 |
-
integer wait_units optional the default time unit to wait before auto-selecting a winner - use "3600" for hours, "86400" for days. Defaults to 86400.
|
235 |
-
integer wait_time optional the number of units to wait before auto-selecting a winner - defaults to 1, so if not set, a winner will be selected after 1 Day.
|
236 |
-
integer split_size optional this is a percentage of what size the Campaign's List plus any segmentation options results in. "schedule" type forces 50%, all others default to 10%
|
237 |
-
string from_name_a optional sort of, required when split_test is "from_name"
|
238 |
-
string from_name_b optional sort of, required when split_test is "from_name"
|
239 |
-
string from_email_a optional sort of, required when split_test is "from_name"
|
240 |
-
string from_email_b optional sort of, required when split_test is "from_name"
|
241 |
-
string subject_a optional sort of, required when split_test is "subject"
|
242 |
-
string subject_b optional sort of, required when split_test is "subject"
|
243 |
-
*
|
244 |
* @return string the ID for the created campaign
|
245 |
*/
|
246 |
-
function campaignCreate($
|
|
|
|
|
|
|
|
|
247 |
$params = array();
|
248 |
-
$params["
|
249 |
-
$params["
|
|
|
|
|
250 |
$params["content"] = $content;
|
251 |
-
$params["
|
252 |
-
$params["
|
|
|
|
|
|
|
253 |
return $this->callServer("campaignCreate", $params);
|
254 |
}
|
255 |
|
256 |
-
/** Update just about any setting for a campaign that has <i>not</i> been sent. See campaignCreate() for details
|
257 |
-
*
|
258 |
-
* Caveats:<br/><ul>
|
259 |
-
* <li>If you set list_id, all segmentation options will be deleted and must be re-added.</li>
|
260 |
-
* <li>If you set template_id, you need to follow that up by setting it's 'content'</li>
|
261 |
-
* <li>If you set segment_opts, you should have tested your options against campaignSegmentTest() as campaignUpdate() will not allow you to set a segment that includes no members.</li></ul>
|
262 |
-
* @section Campaign Related
|
263 |
-
* @example xml-rpc_campaignUpdate.php
|
264 |
-
* @example xml-rpc_campaignUpdateAB.php
|
265 |
-
*
|
266 |
-
* @param string $cid the Campaign Id to update
|
267 |
-
* @param string $name the parameter name ( see campaignCreate() )
|
268 |
-
* @param mixed $value an appropriate value for the parameter ( see campaignCreate() )
|
269 |
-
* @return boolean true if the update succeeds, otherwise an error will be thrown
|
270 |
-
*/
|
271 |
-
function campaignUpdate($cid, $name, $value) {
|
272 |
-
$params = array();
|
273 |
-
$params["cid"] = $cid;
|
274 |
-
$params["name"] = $name;
|
275 |
-
$params["value"] = $value;
|
276 |
-
return $this->callServer("campaignUpdate", $params);
|
277 |
-
}
|
278 |
-
|
279 |
/**
|
280 |
-
* Get the list of campaigns and
|
281 |
*
|
282 |
* @section Campaign Related
|
283 |
-
* @example xml-rpc_campaigns.php
|
284 |
*
|
285 |
-
* @param string $filter_id optional - only show campaigns from this list id - get lists using
|
286 |
* @param integer $filter_folder optional - only show campaigns from this folder id - get folders using campaignFolders()
|
287 |
* @param string $filter_fromname optional - only show campaigns that have this "From Name"
|
288 |
* @param string $filter_fromemail optional - only show campaigns that have this "Reply-to Email"
|
@@ -291,22 +171,20 @@ class MCAPI {
|
|
291 |
* @param string $filter_sendtimestart optional - only show campaigns that have been sent since this date/time
|
292 |
* @param string $filter_sendtimeend optional - only show campaigns that have been sent before this date/time
|
293 |
* @param boolean $filter_exact optional - flag for whether to filter on exact values when filtering, or search within content for filter values
|
294 |
-
* @param integer $start optional - control paging of campaigns, start results at this campaign #, defaults to
|
295 |
* @param integer $limit optional - control paging of campaigns, number of campaigns to return with each call, defaults to 25 (max=5000)
|
296 |
* @return array list of campaigns and their associated information (see Returned Fields for description)
|
297 |
* @returnf string id Campaign Id (used for all other campaign functions)
|
298 |
* @returnf string title Title of the campaign
|
299 |
-
* @returnf string type The type of campaign this is (regular, plaintext, absplit, rss, etc.)
|
300 |
* @returnf date create_time Creation time for the campaign
|
301 |
* @returnf date send_time Send time for the campaign
|
302 |
-
* @returnf
|
303 |
* @returnf string status Status of the given campaign (sent,scheduled,etc.)
|
304 |
* @returnf string from_name From name of the given campaign
|
305 |
* @returnf string from_email Reply-to email of the given campaign
|
306 |
* @returnf string subject Subject of the given campaign
|
307 |
-
* @returnf string to_email
|
308 |
* @returnf string archive_url Archive link for the given campaign
|
309 |
-
* @returnf boolean inline_css Whether or not the campaigns content auto-css-lined
|
310 |
*/
|
311 |
function campaigns($filter_id=NULL, $filter_folder=NULL, $filter_fromname=NULL, $filter_fromemail=NULL, $filter_title=NULL, $filter_subject=NULL, $filter_sendtimestart=NULL, $filter_sendtimeend=NULL, $filter_exact=true, $start=0, $limit=25) {
|
312 |
$params = array();
|
@@ -328,7 +206,6 @@ class MCAPI {
|
|
328 |
* List all the folders for a user account
|
329 |
*
|
330 |
* @section Campaign Related
|
331 |
-
* @example xml-rpc_campaignFolders.php
|
332 |
*
|
333 |
* @return array Array of folder structs (see Returned Fields for details)
|
334 |
* @returnf integer folder_id Folder Id for the given folder, this can be used in the campaigns() function to filter on.
|
@@ -343,9 +220,8 @@ class MCAPI {
|
|
343 |
* Given a list and a campaign, get all the relevant campaign statistics (opens, bounces, clicks, etc.)
|
344 |
*
|
345 |
* @section Campaign Stats
|
346 |
-
* @example xml-rpc_campaignStats.php
|
347 |
*
|
348 |
-
* @param string $cid the campaign id to pull stats for (can be gathered using campaigns())
|
349 |
* @return array struct of the statistics for this campaign
|
350 |
* @returnf integer syntax_errors Number of email addresses in campaign that had syntactical errors.
|
351 |
* @returnf integer hard_bounces Number of email addresses in campaign that hard bounced.
|
@@ -374,7 +250,7 @@ class MCAPI {
|
|
374 |
*
|
375 |
* @section Campaign Stats
|
376 |
*
|
377 |
-
* @param string $cid the campaign id to pull stats for (can be gathered using campaigns())
|
378 |
* @return struct list of urls and their associated statistics
|
379 |
* @returnf integer clicks Number of times the specific link was clicked
|
380 |
* @returnf integer unique Number of unique people who clicked on the specific link
|
@@ -385,14 +261,33 @@ class MCAPI {
|
|
385 |
return $this->callServer("campaignClickStats", $params);
|
386 |
}
|
387 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
388 |
/**
|
389 |
* Get all email addresses with Hard Bounces for a given campaign
|
390 |
*
|
391 |
* @section Campaign Stats
|
392 |
*
|
393 |
-
* @param string $cid the campaign id to pull bounces for (can be gathered using campaigns())
|
394 |
-
* @param
|
395 |
-
* @param
|
396 |
* @return array Arrays of email addresses with Hard Bounces
|
397 |
*/
|
398 |
function campaignHardBounces($cid, $start=0, $limit=1000) {
|
@@ -408,9 +303,9 @@ class MCAPI {
|
|
408 |
*
|
409 |
* @section Campaign Stats
|
410 |
*
|
411 |
-
* @param string $cid the campaign id to pull bounces for (can be gathered using campaigns())
|
412 |
-
* @param
|
413 |
-
* @param
|
414 |
* @return array Arrays of email addresses with Soft Bounces
|
415 |
*/
|
416 |
function campaignSoftBounces($cid, $start=0, $limit=1000) {
|
@@ -426,9 +321,9 @@ class MCAPI {
|
|
426 |
*
|
427 |
* @section Campaign Stats
|
428 |
*
|
429 |
-
* @param string $cid the campaign id to pull bounces for (can be gathered using campaigns())
|
430 |
-
* @param
|
431 |
-
* @param
|
432 |
* @return array list of email addresses that unsubscribed from this campaign
|
433 |
*/
|
434 |
function campaignUnsubscribes($cid, $start=0, $limit=1000) {
|
@@ -444,9 +339,9 @@ class MCAPI {
|
|
444 |
*
|
445 |
* @section Campaign Stats
|
446 |
*
|
447 |
-
* @param string $cid the campaign id to pull bounces for (can be gathered using campaigns())
|
448 |
-
* @param
|
449 |
-
* @param
|
450 |
* @return array list of email addresses that complained (filed abuse reports) about this campaign
|
451 |
*/
|
452 |
function campaignAbuseReports($cid, $start=0, $limit=1000) {
|
@@ -462,7 +357,7 @@ class MCAPI {
|
|
462 |
*
|
463 |
* @section Campaign Related
|
464 |
*
|
465 |
-
* @param string $cid the campaign id to get content for (can be gathered using campaigns())
|
466 |
* @return struct Struct containing all content for the campaign (see Returned Fields for details
|
467 |
* @returnf string html The HTML content used for the campgain with merge tags intact
|
468 |
* @returnf string text The Text content used for the campgain with merge tags intact
|
@@ -478,9 +373,9 @@ class MCAPI {
|
|
478 |
*
|
479 |
* @section Campaign AIM
|
480 |
*
|
481 |
-
* @param string $cid the campaign id to get opens for (can be gathered using campaigns())
|
482 |
-
* @param
|
483 |
-
* @param
|
484 |
* @return array Array of structs containing email addresses and open counts
|
485 |
* @returnf string email Email address that opened the campaign
|
486 |
* @returnf integer open_count Total number of times the campaign was opened by this email address
|
@@ -498,9 +393,9 @@ class MCAPI {
|
|
498 |
*
|
499 |
* @section Campaign AIM
|
500 |
*
|
501 |
-
* @param string $cid the campaign id to get no opens for (can be gathered using campaigns())
|
502 |
-
* @param
|
503 |
-
* @param
|
504 |
* @return array list of email addresses that did not open a campaign
|
505 |
*/
|
506 |
function campaignNotOpenedAIM($cid, $start=0, $limit=1000) {
|
@@ -516,10 +411,10 @@ class MCAPI {
|
|
516 |
*
|
517 |
* @section Campaign AIM
|
518 |
*
|
519 |
-
* @param string $cid the campaign id to get click stats for (can be gathered using campaigns())
|
520 |
* @param string $url the URL of the link that was clicked on
|
521 |
-
* @param
|
522 |
-
* @param
|
523 |
* @return array Array of structs containing email addresses and click counts
|
524 |
* @returnf string email Email address that opened the campaign
|
525 |
* @returnf integer clicks Total number of times the URL was clicked on by this email address
|
@@ -538,7 +433,7 @@ class MCAPI {
|
|
538 |
*
|
539 |
* @section Campaign AIM
|
540 |
*
|
541 |
-
* @param string $cid the campaign id to get stats for (can be gathered using campaigns())
|
542 |
* @param string $email_address the email address to get activity history for
|
543 |
* @return array Array of structs containing actions (opens and clicks) that the email took, with timestamps
|
544 |
* @returnf string action The action taken (open or click)
|
@@ -573,7 +468,6 @@ class MCAPI {
|
|
573 |
* Get the list of merge tags for a given list, including their name, tag, and required setting
|
574 |
*
|
575 |
* @section List Related
|
576 |
-
* @example xml-rpc_listMergeVars.php
|
577 |
*
|
578 |
* @param string $id the list id to connect to
|
579 |
* @return array list of merge tags for the list
|
@@ -587,50 +481,10 @@ class MCAPI {
|
|
587 |
return $this->callServer("listMergeVars", $params);
|
588 |
}
|
589 |
|
590 |
-
/**
|
591 |
-
* Add a new merge tag to a given list
|
592 |
-
*
|
593 |
-
* @section List Related
|
594 |
-
* @example xml-rpc_listMergeVarAdd.php
|
595 |
-
*
|
596 |
-
* @param string $id the list id to connect to
|
597 |
-
* @param string $tag The merge tag to add, e.g. FNAME
|
598 |
-
* @param string $name The long description of the tag being added, used for user displays
|
599 |
-
* @param boolean $req optional Whether or not to require this field to be filled in, defaults to false
|
600 |
-
* @return bool true if the request succeeds, otherwise an error will be thrown
|
601 |
-
*/
|
602 |
-
function listMergeVarAdd($id, $tag, $name, $req=false) {
|
603 |
-
$params = array();
|
604 |
-
$params["id"] = $id;
|
605 |
-
$params["tag"] = $tag;
|
606 |
-
$params["name"] = $name;
|
607 |
-
$params["req"] = $req;
|
608 |
-
return $this->callServer("listMergeVarAdd", $params);
|
609 |
-
}
|
610 |
-
|
611 |
-
/**
|
612 |
-
* Delete a merge tag from a given list and all it's members. Note that on large lists this method
|
613 |
-
* may seem a bit slower than calls you typical make.
|
614 |
-
*
|
615 |
-
* @section List Related
|
616 |
-
* @example xml-rpc_listMergeVarDel.php
|
617 |
-
*
|
618 |
-
* @param string $id the list id to connect to
|
619 |
-
* @param string $tag The merge tag to delete
|
620 |
-
* @return bool true if the request succeeds, otherwise an error will be thrown
|
621 |
-
*/
|
622 |
-
function listMergeVarDel($id, $tag) {
|
623 |
-
$params = array();
|
624 |
-
$params["id"] = $id;
|
625 |
-
$params["tag"] = $tag;
|
626 |
-
return $this->callServer("listMergeVarDel", $params);
|
627 |
-
}
|
628 |
-
|
629 |
/**
|
630 |
* Get the list of interest groups for a given list, including the label and form information
|
631 |
*
|
632 |
* @section List Related
|
633 |
-
* @example xml-rpc_listInterestGroups.php
|
634 |
*
|
635 |
* @param string $id the list id to connect to
|
636 |
* @return struct list of interest groups for the list
|
@@ -644,38 +498,6 @@ class MCAPI {
|
|
644 |
return $this->callServer("listInterestGroups", $params);
|
645 |
}
|
646 |
|
647 |
-
/** Add a single Interest Group
|
648 |
-
*
|
649 |
-
* @section List Related
|
650 |
-
* @example xml-rpc_listInterestGroupAdd.php
|
651 |
-
*
|
652 |
-
* @param string $id the list id to connect to
|
653 |
-
* @param string $group_name the interest group to add
|
654 |
-
* @return bool true if the request succeeds, otherwise an error will be thrown
|
655 |
-
*/
|
656 |
-
function listInterestGroupAdd($id, $group_name) {
|
657 |
-
$params = array();
|
658 |
-
$params["id"] = $id;
|
659 |
-
$params["group_name"] = $group_name;
|
660 |
-
return $this->callServer("listInterestGroupAdd", $params);
|
661 |
-
}
|
662 |
-
|
663 |
-
/** Delete a single Interest Group
|
664 |
-
*
|
665 |
-
* @section List Related
|
666 |
-
* @example xml-rpc_listInterestGroupDel.php
|
667 |
-
*
|
668 |
-
* @param string $id the list id to connect to
|
669 |
-
* @param string $group_name the interest group to delete
|
670 |
-
* @return bool true if the request succeeds, otherwise an error will be thrown
|
671 |
-
*/
|
672 |
-
function listInterestGroupDel($id, $group_name) {
|
673 |
-
$params = array();
|
674 |
-
$params["id"] = $id;
|
675 |
-
$params["group_name"] = $group_name;
|
676 |
-
return $this->callServer("listInterestGroupDel", $params);
|
677 |
-
}
|
678 |
-
|
679 |
/**
|
680 |
* Subscribe the provided email to a list
|
681 |
*
|
@@ -686,11 +508,9 @@ class MCAPI {
|
|
686 |
*
|
687 |
* @param string $id the list id to connect to
|
688 |
* @param string $email_address the email address to subscribe
|
689 |
-
* @param array $merge_vars array of merges for the email (FNAME, LNAME, etc.) (see examples below for handling "blank" arrays)
|
690 |
-
string INTERESTS Set Interest Groups by passing a field named "INTERESTS" that contains a comma delimited list of Interest Groups to add.
|
691 |
-
string OPTINIP Set the Opt-in IP fields. <i>Abusing this may cause your account to be suspended.</i>
|
692 |
* @param string $email_type optional - email type preference for the email (html or text, defaults to html)
|
693 |
-
* @param boolean $double_optin optional - flag to control whether a double opt-in confirmation message is sent, defaults to true
|
694 |
* @return boolean true on success, false on failure. When using MCAPI.class.php, the value can be tested and error messages pulled from the MCAPI object (see below)
|
695 |
*/
|
696 |
function listSubscribe($id, $email_address, $merge_vars, $email_type='html', $double_optin=true) {
|
@@ -708,7 +528,6 @@ class MCAPI {
|
|
708 |
*
|
709 |
* @section List Related
|
710 |
* @example mcapi_listUnsubscribe.php
|
711 |
-
* @example xml-rpc_listUnsubscribe.php
|
712 |
*
|
713 |
* @param string $id the list id to connect to
|
714 |
* @param string $email_address the email address to unsubscribe
|
@@ -731,7 +550,6 @@ class MCAPI {
|
|
731 |
* Edit the email address, merge fields, and interest groups for a list member
|
732 |
*
|
733 |
* @section List Related
|
734 |
-
* @example mcapi_listUpdateMember.php
|
735 |
*
|
736 |
* @param string $id the list id to connect to
|
737 |
* @param string $email_address the current email address of the member to update
|
@@ -764,7 +582,7 @@ class MCAPI {
|
|
764 |
* @return struct Array of result counts and any errors that occurred
|
765 |
* @returnf integer success_count Number of email addresses that were succesfully added/updated
|
766 |
* @returnf integer error_count Number of email addresses that failed during addition/updating
|
767 |
-
* @returnf array errors Array of error structs. Each error struct will contain "code", "message", and
|
768 |
*/
|
769 |
function listBatchSubscribe($id, $batch, $double_optin=true, $update_existing=false, $replace_interests=true) {
|
770 |
$params = array();
|
@@ -780,7 +598,6 @@ class MCAPI {
|
|
780 |
* Unsubscribe a batch of email addresses to a list
|
781 |
*
|
782 |
* @section List Related
|
783 |
-
* @example mcapi_listBatchUnsubscribe.php
|
784 |
*
|
785 |
* @param string $id the list id to connect to
|
786 |
* @param array $emails array of email addresses to unsubscribe
|
@@ -790,7 +607,7 @@ class MCAPI {
|
|
790 |
* @return struct Array of result counts and any errors that occurred
|
791 |
* @returnf integer success_count Number of email addresses that were succesfully added/updated
|
792 |
* @returnf integer error_count Number of email addresses that failed during addition/updating
|
793 |
-
* @returnf array errors Array of error structs. Each error struct will contain "code", "message", and "
|
794 |
*/
|
795 |
function listBatchUnsubscribe($id, $emails, $delete_member=false, $send_goodbye=true, $send_notify=false) {
|
796 |
$params = array();
|
@@ -803,15 +620,15 @@ class MCAPI {
|
|
803 |
}
|
804 |
|
805 |
/**
|
806 |
-
* Get all of the list members
|
807 |
*
|
808 |
* @section List Related
|
809 |
* @example mcapi_listMembers.php
|
810 |
*
|
811 |
* @param string $id the list id to connect to
|
812 |
* @param string $status the status to get members for - one of(subscribed, unsubscribed, or cleaned), defaults to subscribed
|
813 |
-
* @param
|
814 |
-
* @param
|
815 |
* @return array Array of list member structs (see Returned Fields for details)
|
816 |
* @returnf string email Member email address
|
817 |
* @returnf date timestamp timestamp of their associated status(date subscribed, unsubscribed, or cleaned)
|
@@ -830,8 +647,6 @@ class MCAPI {
|
|
830 |
*
|
831 |
* @section List Related
|
832 |
* @example mcapi_listMemberInfo.php
|
833 |
-
* @example xml-rpc_listMemberInfo.php
|
834 |
-
*
|
835 |
* @param string $id the list id to connect to
|
836 |
* @param string $email_address the member email address to get information for
|
837 |
* @return array array of list member info (see Returned Fields for details)
|
@@ -839,8 +654,6 @@ class MCAPI {
|
|
839 |
* @returnf string email_type The type of emails this customer asked to get: html or text
|
840 |
* @returnf array merges An associative array of all the merge tags and the data for those tags for this email address
|
841 |
* @returnf string status The subscription status for this email address, either subscribed, unsubscribed or cleaned
|
842 |
-
* @returnf string ip_opt IP Address this address opted in from.
|
843 |
-
* @returnf string ip_signup IP Address this address signed up from.
|
844 |
* @returnf date timestamp The time this email address was added to the list
|
845 |
*/
|
846 |
function listMemberInfo($id, $email_address) {
|
@@ -850,146 +663,6 @@ class MCAPI {
|
|
850 |
return $this->callServer("listMemberInfo", $params);
|
851 |
}
|
852 |
|
853 |
-
/**
|
854 |
-
* Retrieve your User Unique Id and your Affiliate link to display/use for <a href="/monkeyrewards/" target="_blank">Monkey Rewards</a>. While
|
855 |
-
* we don't use the User Id for any API functions, it can be useful if building up URL strings for things such as the profile editor and sub/unsub links.
|
856 |
-
* @section Helper
|
857 |
-
*
|
858 |
-
* @return array containing your Affilliate Id and full link.
|
859 |
-
* @returnf string user_id Your User Unique Id.
|
860 |
-
* @returnf string url Your Monkey Rewards link for our Affiliate program
|
861 |
-
*/
|
862 |
-
function getAffiliateInfo() {
|
863 |
-
$params = array();
|
864 |
-
return $this->callServer("getAffiliateInfo", $params);
|
865 |
-
}
|
866 |
-
|
867 |
-
/**
|
868 |
-
* Have HTML content auto-converted to a text-only format. You can send: plain HTML, an array of Template content, an existing Campaign Id, or an existing Template Id. Note that this will <b>not</b> save anything to or update any of your lists, campaigns, or templates.
|
869 |
-
*
|
870 |
-
* @section Helper
|
871 |
-
* @example xml-rpc_generateText.php
|
872 |
-
*
|
873 |
-
* @param string $type The type of content to parse. Must be one of: "html", "template", "url", "cid" (Campaign Id), or "tid" (Template Id)
|
874 |
-
* @param mixed $content The content to use. For "html" expects a single string value, "template" expects an array like you send to campaignCreate, "url" expects a valid & public URL to pull from, "cid" expects a valid Campaign Id, and "tid" expects a valid Template Id on your account.
|
875 |
-
* @return string the content pass in converted to text.
|
876 |
-
*/
|
877 |
-
function generateText($type, $content) {
|
878 |
-
$params = array();
|
879 |
-
$params["type"] = $type;
|
880 |
-
$params["content"] = $content;
|
881 |
-
return $this->callServer("generateText", $params);
|
882 |
-
}
|
883 |
-
|
884 |
-
/**
|
885 |
-
* Send your HTML content to have the CSS inlined and optionally remove the original styles.
|
886 |
-
*
|
887 |
-
* @section Helper
|
888 |
-
* @example xml-rpc_inlineCss.php
|
889 |
-
*
|
890 |
-
* @param string $html Your HTML content
|
891 |
-
* @param bool $strip_css optional Whether you want the CSS <style> tags stripped from the returned document. Defaults to false.
|
892 |
-
* @return string Your HTML content with all CSS inlined, just like if we sent it.
|
893 |
-
*/
|
894 |
-
function inlineCss($html, $strip_css=false) {
|
895 |
-
$params = array();
|
896 |
-
$params["html"] = $html;
|
897 |
-
$params["strip_css"] = $strip_css;
|
898 |
-
return $this->callServer("inlineCss", $params);
|
899 |
-
}
|
900 |
-
|
901 |
-
/**
|
902 |
-
* Retrieve a list of all MailChimp API Keys for this User
|
903 |
-
*
|
904 |
-
* @section Security Related
|
905 |
-
* @example xml-rpc_apikeyAdd.php
|
906 |
-
*
|
907 |
-
* @param string $username Your MailChimp user name
|
908 |
-
* @param string $password Your MailChimp password
|
909 |
-
* @param boolean $expired optional - whether or not to include expired keys, defaults to false
|
910 |
-
* @return array an array of API keys including:
|
911 |
-
* @returnf string apikey The api key that can be used
|
912 |
-
* @returnf string created_at The date the key was created
|
913 |
-
* @returnf string expired_at The date the key was expired
|
914 |
-
*/
|
915 |
-
function apikeys($username, $password, $expired=false) {
|
916 |
-
$params = array();
|
917 |
-
$params["username"] = $username;
|
918 |
-
$params["password"] = $password;
|
919 |
-
$params["expired"] = $expired;
|
920 |
-
return $this->callServer("apikeys", $params);
|
921 |
-
}
|
922 |
-
|
923 |
-
/**
|
924 |
-
* Add an API Key to your account. We will generate a new key for you and return it.
|
925 |
-
*
|
926 |
-
* @section Security Related
|
927 |
-
* @example xml-rpc_apikeyAdd.php
|
928 |
-
*
|
929 |
-
* @param string $username Your MailChimp user name
|
930 |
-
* @param string $password Your MailChimp password
|
931 |
-
* @return string a new API Key that can be immediately used.
|
932 |
-
*/
|
933 |
-
function apikeyAdd($username, $password) {
|
934 |
-
$params = array();
|
935 |
-
$params["username"] = $username;
|
936 |
-
$params["password"] = $password;
|
937 |
-
return $this->callServer("apikeyAdd", $params);
|
938 |
-
}
|
939 |
-
|
940 |
-
/**
|
941 |
-
* Expire a Specific API Key. Note that if you expire all of your keys, a new, valid one will be created and returned
|
942 |
-
* next time you call login(). If you are trying to shut off access to your account for an old developer, change your
|
943 |
-
* MailChimp password, then expire all of the keys they had access to. Note that this takes effect immediately, so make
|
944 |
-
* sure you replace the keys in any working application before expiring them! Consider yourself warned...
|
945 |
-
*
|
946 |
-
* @section Security Related
|
947 |
-
* @example xml-rpc_apikeyExpire.php
|
948 |
-
*
|
949 |
-
* @param string $username Your MailChimp user name
|
950 |
-
* @param string $password Your MailChimp password
|
951 |
-
* @return boolean true if it worked, otherwise an error is thrown.
|
952 |
-
*/
|
953 |
-
function apikeyExpire($username, $password) {
|
954 |
-
$params = array();
|
955 |
-
$params["username"] = $username;
|
956 |
-
$params["password"] = $password;
|
957 |
-
return $this->callServer("apikeyExpire", $params);
|
958 |
-
}
|
959 |
-
|
960 |
-
/**
|
961 |
-
* Disable a pretty bad security hole that exists in our 1.0 version of the API. If you have never used
|
962 |
-
* the API, we close this hole for you automatically. If you are an existing user, even if you upgraded to
|
963 |
-
* version 1.1, you should run this once anyways. Running this will *not* prevent you from using version 1.0 if you need to.
|
964 |
-
*
|
965 |
-
* @section Security Related
|
966 |
-
*
|
967 |
-
* @param string $username Your MailChimp user name
|
968 |
-
* @param string $password Your MailChimp password
|
969 |
-
* @return boolean true if it works, otherwise an exception is thrown
|
970 |
-
*/
|
971 |
-
function closeOneOhSecurityHole($username, $password) {
|
972 |
-
$params = array();
|
973 |
-
$params["username"] = $username;
|
974 |
-
$params["password"] = $password;
|
975 |
-
return $this->callServer("closeOneOhSecurityHole", $params);
|
976 |
-
}
|
977 |
-
|
978 |
-
/**
|
979 |
-
* "Ping" the MailChimp API - a simple method you can call that will return a constant value as long as everything is good. Note
|
980 |
-
* than unlike most all of our methods, we don't throw an Exception if we are having issues. You will simply receive a different
|
981 |
-
* string back that will explain our view on what is going on.
|
982 |
-
*
|
983 |
-
* @section Helper
|
984 |
-
* @example xml-rpc_ping.php
|
985 |
-
*
|
986 |
-
* @return string returns "Everything's Chimpy!" if everything is chimpy, otherwise returns an error message
|
987 |
-
*/
|
988 |
-
function ping() {
|
989 |
-
$params = array();
|
990 |
-
return $this->callServer("ping", $params);
|
991 |
-
}
|
992 |
-
|
993 |
/**
|
994 |
* Internal function - proxy method for certain XML-RPC calls | DO NOT CALL
|
995 |
* @param mixed Method to call, with any parameters to pass along
|
@@ -1007,14 +680,13 @@ class MCAPI {
|
|
1007 |
function callServer($method, $params) {
|
1008 |
//Always include the user id if we're not loggin in
|
1009 |
if($method != "login") {
|
1010 |
-
$params["
|
1011 |
}
|
1012 |
|
1013 |
$post_vars = $this->httpBuildQuery($params);
|
1014 |
|
1015 |
$payload = "POST " . $this->apiUrl["path"] . "?" . $this->apiUrl["query"] . "&method=" . $method . " HTTP/1.0\r\n";
|
1016 |
$payload .= "Host: " . $this->apiUrl["host"] . "\r\n";
|
1017 |
-
$payload .= "User-Agent: MCAPI-Wordpress/" . $this->version ."\r\n";
|
1018 |
$payload .= "Content-type: application/x-www-form-urlencoded\r\n";
|
1019 |
$payload .= "Content-length: " . strlen($post_vars) . "\r\n";
|
1020 |
$payload .= "Connection: close \r\n\r\n";
|
@@ -1024,7 +696,7 @@ class MCAPI {
|
|
1024 |
$sock = fsockopen($this->apiUrl["host"], 80, $errno, $errstr, $this->timeout);
|
1025 |
if(!$sock) {
|
1026 |
$this->errorMessage = "Could not connect (ERR $errno: $errstr)";
|
1027 |
-
$this->errorCode = "
|
1028 |
ob_end_clean();
|
1029 |
return false;
|
1030 |
}
|
@@ -1043,7 +715,7 @@ class MCAPI {
|
|
1043 |
|
1044 |
$serial = unserialize($response);
|
1045 |
if($response && $serial === false) {
|
1046 |
-
$response = array("error" => "Bad Response. Got This: " . $response, "code" => "
|
1047 |
} else {
|
1048 |
$response = $serial;
|
1049 |
}
|
@@ -1079,4 +751,4 @@ class MCAPI {
|
|
1079 |
}
|
1080 |
}
|
1081 |
|
1082 |
-
?>
|
1 |
<?php
|
2 |
|
3 |
class MCAPI {
|
4 |
+
var $version = "1.0";
|
5 |
var $errorMessage;
|
6 |
var $errorCode;
|
7 |
|
21 |
var $chunkSize = 8192;
|
22 |
|
23 |
/**
|
24 |
+
* Cache the user id so we only have to log in once per client instantiation
|
25 |
*/
|
26 |
+
var $uuid;
|
27 |
|
28 |
/**
|
29 |
* Connect to the MailChimp API for a given list. All MCAPI calls require login before functioning
|
32 |
* @param string $password Your MailChimp login password - always required
|
33 |
*/
|
34 |
function MCAPI($username, $password) {
|
|
|
35 |
$this->apiUrl = parse_url("http://api.mailchimp.com/" . $this->version . "/?output=php");
|
36 |
+
$this->uuid = $this->callServer("login", array("username" => $username, "password" => $password));
|
|
|
|
|
|
|
|
|
|
|
37 |
}
|
38 |
|
39 |
/**
|
42 |
* @section Campaign Related
|
43 |
* @example xml-rpc_campaignUnschedule.php
|
44 |
*
|
45 |
+
* @param string $cid the id for the campaign to unschedule
|
46 |
* @return boolean true on success
|
47 |
*/
|
48 |
function campaignUnschedule($cid) {
|
57 |
* @section Campaign Related
|
58 |
* @example xml-rpc_campaignSchedule.php
|
59 |
*
|
60 |
+
* @param string $cid the id for the campaign to schedule
|
61 |
+
* @param string $schedule_time the time to schedule the campaign - in YYYY-MM-DD HH:II:SS format in GMT
|
|
|
62 |
* @return boolean true on success
|
63 |
*/
|
64 |
+
function campaignSchedule($cid, $schedule_time) {
|
65 |
$params = array();
|
66 |
$params["cid"] = $cid;
|
67 |
$params["schedule_time"] = $schedule_time;
|
|
|
68 |
return $this->callServer("campaignSchedule", $params);
|
69 |
}
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
/**
|
72 |
* Send a given campaign immediately
|
73 |
*
|
74 |
* @section Campaign Related
|
75 |
+
* @example xml-rpc_campaignSend.php
|
76 |
*
|
77 |
+
* @param string $cid the id for the campaign to send
|
78 |
* @return boolean true on success
|
79 |
*/
|
80 |
function campaignSendNow($cid) {
|
89 |
* @section Campaign Related
|
90 |
* @example xml-rpc_campaignSendTest.php
|
91 |
*
|
92 |
+
* @param string $cid the id for the campaign to test
|
93 |
+
* @param string $test_emails an array of email address to receive the test message
|
94 |
+
* @param string $send_type optional default (null) sends both, "html" or "text" send just that format
|
95 |
* @return boolean true on success
|
96 |
*/
|
97 |
function campaignSendTest($cid, $test_emails=array (
|
120 |
return $this->callServer("campaignTemplates", $params);
|
121 |
}
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
/**
|
124 |
* Create a new draft campaign to send
|
125 |
*
|
126 |
* @section Campaign Related
|
127 |
+
* @example xml-rpc_createCampaign.php
|
128 |
+
*
|
129 |
+
* @param string $list_id the list to send this campaign to- get lists using getLists()
|
130 |
+
* @param string $subject the subject line for your campaign message
|
131 |
+
* @param string $from_email the From: email address for your campaign message
|
132 |
+
* @param string $from_name the From: name for your campaign message
|
133 |
+
* @param array $content the content for this campaign - use a struct with the following keys: "html" for pasted HTML content and "text" for the plain-text version. If you chose a template instead of pasting in your HTML content, then use "html_" followed by the template sections as keys - for example, use a key of "html_MAIN" to fill in the "MAIN" section of a template.
|
134 |
+
* @param integer $template_id optional - use this template to generate the HTML content of the campaign
|
135 |
+
* @param array $tracking optional - set which recipient actions will be tracked, as a struct of boolean values with the following keys: "opens", "html_clicks", and "text_clicks". By default, opens and HTML clicks will be tracked.
|
136 |
+
* @param string $title optional - an internal name to use for this campaign. By default, the campaign subject will be used.
|
137 |
+
* @param boolean $authenticate optional - set to true to enable SenderID, DomainKeys, and DKIM authentication, defaults to false
|
138 |
+
* @param string $analytics optional - if provided, use a struct with "service type" as a key and the "service tag" as a value. For Google, this should be "google"=>"your_google_analytics_key_here". Note that only "google" is currently supported - a Google Analytics tags will be added to all links in the campaign with this string attached. Others may be added in the future
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
* @return string the ID for the created campaign
|
140 |
*/
|
141 |
+
function campaignCreate($list_id, $subject, $from_email, $from_name, $content, $template_id=NULL, $tracking=array (
|
142 |
+
'opens' => true,
|
143 |
+
'html_clicks' => true,
|
144 |
+
'text_clicks' => false,
|
145 |
+
), $title=NULL, $authenticate=false, $analytics=NULL) {
|
146 |
$params = array();
|
147 |
+
$params["list_id"] = $list_id;
|
148 |
+
$params["subject"] = $subject;
|
149 |
+
$params["from_email"] = $from_email;
|
150 |
+
$params["from_name"] = $from_name;
|
151 |
$params["content"] = $content;
|
152 |
+
$params["template_id"] = $template_id;
|
153 |
+
$params["tracking"] = $tracking;
|
154 |
+
$params["title"] = $title;
|
155 |
+
$params["authenticate"] = $authenticate;
|
156 |
+
$params["analytics"] = $analytics;
|
157 |
return $this->callServer("campaignCreate", $params);
|
158 |
}
|
159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
/**
|
161 |
+
* Get the list of campaigns and associated information for a list
|
162 |
*
|
163 |
* @section Campaign Related
|
|
|
164 |
*
|
165 |
+
* @param string $filter_id optional - only show campaigns from this list id - get lists using getLists()
|
166 |
* @param integer $filter_folder optional - only show campaigns from this folder id - get folders using campaignFolders()
|
167 |
* @param string $filter_fromname optional - only show campaigns that have this "From Name"
|
168 |
* @param string $filter_fromemail optional - only show campaigns that have this "Reply-to Email"
|
171 |
* @param string $filter_sendtimestart optional - only show campaigns that have been sent since this date/time
|
172 |
* @param string $filter_sendtimeend optional - only show campaigns that have been sent before this date/time
|
173 |
* @param boolean $filter_exact optional - flag for whether to filter on exact values when filtering, or search within content for filter values
|
174 |
+
* @param integer $start optional - control paging of campaigns, start results at this campaign #, defaults to 0 (beginning)
|
175 |
* @param integer $limit optional - control paging of campaigns, number of campaigns to return with each call, defaults to 25 (max=5000)
|
176 |
* @return array list of campaigns and their associated information (see Returned Fields for description)
|
177 |
* @returnf string id Campaign Id (used for all other campaign functions)
|
178 |
* @returnf string title Title of the campaign
|
|
|
179 |
* @returnf date create_time Creation time for the campaign
|
180 |
* @returnf date send_time Send time for the campaign
|
181 |
+
* @returnf int emails_sent Number of emails email was sent to
|
182 |
* @returnf string status Status of the given campaign (sent,scheduled,etc.)
|
183 |
* @returnf string from_name From name of the given campaign
|
184 |
* @returnf string from_email Reply-to email of the given campaign
|
185 |
* @returnf string subject Subject of the given campaign
|
186 |
+
* @returnf string to_email To email string
|
187 |
* @returnf string archive_url Archive link for the given campaign
|
|
|
188 |
*/
|
189 |
function campaigns($filter_id=NULL, $filter_folder=NULL, $filter_fromname=NULL, $filter_fromemail=NULL, $filter_title=NULL, $filter_subject=NULL, $filter_sendtimestart=NULL, $filter_sendtimeend=NULL, $filter_exact=true, $start=0, $limit=25) {
|
190 |
$params = array();
|
206 |
* List all the folders for a user account
|
207 |
*
|
208 |
* @section Campaign Related
|
|
|
209 |
*
|
210 |
* @return array Array of folder structs (see Returned Fields for details)
|
211 |
* @returnf integer folder_id Folder Id for the given folder, this can be used in the campaigns() function to filter on.
|
220 |
* Given a list and a campaign, get all the relevant campaign statistics (opens, bounces, clicks, etc.)
|
221 |
*
|
222 |
* @section Campaign Stats
|
|
|
223 |
*
|
224 |
+
* @param string $cid the campaign id to pull stats for (can be gathered using campaigns($id))
|
225 |
* @return array struct of the statistics for this campaign
|
226 |
* @returnf integer syntax_errors Number of email addresses in campaign that had syntactical errors.
|
227 |
* @returnf integer hard_bounces Number of email addresses in campaign that hard bounced.
|
250 |
*
|
251 |
* @section Campaign Stats
|
252 |
*
|
253 |
+
* @param string $cid the campaign id to pull stats for (can be gathered using campaigns($id))
|
254 |
* @return struct list of urls and their associated statistics
|
255 |
* @returnf integer clicks Number of times the specific link was clicked
|
256 |
* @returnf integer unique Number of unique people who clicked on the specific link
|
261 |
return $this->callServer("campaignClickStats", $params);
|
262 |
}
|
263 |
|
264 |
+
/**
|
265 |
+
* Get all bounced email addresses for a given campaign<br/>
|
266 |
+
* <strong>DEPRECATED:</strong> campaignBounces() has been deprecated and will be removed completely in a future release. see campaignHardBounces() and campaignSoftBounces() for replacements.
|
267 |
+
*
|
268 |
+
* @section Campaign Stats
|
269 |
+
*
|
270 |
+
* @deprecated See campaignHardBounces() and campaignSoftBounces() for replacements
|
271 |
+
* @param string $cid the campaign id to pull bounces for (can be gathered using campaigns($id))
|
272 |
+
* @return struct Struct of arrays of bounced email addresses (hard and soft)
|
273 |
+
* @returnf array hard Array of all email addresses that had Hard bounces for this campaign
|
274 |
+
* @returnf array soft Array of all email addresses that had Soft bounces for this campaign
|
275 |
+
* @returnf array syntax Array of all email addresses that had syntax errors in them (historical - always empty)
|
276 |
+
*/
|
277 |
+
function campaignBounces($cid) {
|
278 |
+
$params = array();
|
279 |
+
$params["cid"] = $cid;
|
280 |
+
return $this->callServer("campaignBounces", $params);
|
281 |
+
}
|
282 |
+
|
283 |
/**
|
284 |
* Get all email addresses with Hard Bounces for a given campaign
|
285 |
*
|
286 |
* @section Campaign Stats
|
287 |
*
|
288 |
+
* @param string $cid the campaign id to pull bounces for (can be gathered using campaigns($id))
|
289 |
+
* @param int $start optional, for large data sets, the page number to start at - defaults to 1st page of data
|
290 |
+
* @param int $limit optional, for large data sets, the number of results to return - defaults to 1000, upper limit set at 15000
|
291 |
* @return array Arrays of email addresses with Hard Bounces
|
292 |
*/
|
293 |
function campaignHardBounces($cid, $start=0, $limit=1000) {
|
303 |
*
|
304 |
* @section Campaign Stats
|
305 |
*
|
306 |
+
* @param string $cid the campaign id to pull bounces for (can be gathered using campaigns($id))
|
307 |
+
* @param int $start optional, for large data sets, the page number to start at - defaults to 1st page of data
|
308 |
+
* @param int $limit optional, for large data sets, the number of results to return - defaults to 1000, upper limit set at 15000
|
309 |
* @return array Arrays of email addresses with Soft Bounces
|
310 |
*/
|
311 |
function campaignSoftBounces($cid, $start=0, $limit=1000) {
|
321 |
*
|
322 |
* @section Campaign Stats
|
323 |
*
|
324 |
+
* @param string $cid the campaign id to pull bounces for (can be gathered using campaigns($id))
|
325 |
+
* @param int $start optional, for large data sets, the page number to start at - defaults to 1st page of data
|
326 |
+
* @param int $limit optional, for large data sets, the number of results to return - defaults to 1000, upper limit set at 15000
|
327 |
* @return array list of email addresses that unsubscribed from this campaign
|
328 |
*/
|
329 |
function campaignUnsubscribes($cid, $start=0, $limit=1000) {
|
339 |
*
|
340 |
* @section Campaign Stats
|
341 |
*
|
342 |
+
* @param string $cid the campaign id to pull bounces for (can be gathered using campaigns($id))
|
343 |
+
* @param int $start optional, for large data sets, the page number to start at - defaults to 1st page of data
|
344 |
+
* @param int $limit optional, for large data sets, the number of results to return - defaults to 1000, upper limit set at 15000
|
345 |
* @return array list of email addresses that complained (filed abuse reports) about this campaign
|
346 |
*/
|
347 |
function campaignAbuseReports($cid, $start=0, $limit=1000) {
|
357 |
*
|
358 |
* @section Campaign Related
|
359 |
*
|
360 |
+
* @param string $cid the campaign id to get content for (can be gathered using campaigns($id))
|
361 |
* @return struct Struct containing all content for the campaign (see Returned Fields for details
|
362 |
* @returnf string html The HTML content used for the campgain with merge tags intact
|
363 |
* @returnf string text The Text content used for the campgain with merge tags intact
|
373 |
*
|
374 |
* @section Campaign AIM
|
375 |
*
|
376 |
+
* @param string $cid the campaign id to get opens for (can be gathered using campaigns($id))
|
377 |
+
* @param int $start optional, for large data sets, the page number to start at - defaults to 1st page of data
|
378 |
+
* @param int $limit optional, for large data sets, the number of results to return - defaults to 1000, upper limit set at 15000
|
379 |
* @return array Array of structs containing email addresses and open counts
|
380 |
* @returnf string email Email address that opened the campaign
|
381 |
* @returnf integer open_count Total number of times the campaign was opened by this email address
|
393 |
*
|
394 |
* @section Campaign AIM
|
395 |
*
|
396 |
+
* @param string $cid the campaign id to get no opens for (can be gathered using campaigns($id))
|
397 |
+
* @param int $start optional, for large data sets, the page number to start at - defaults to 1st page of data
|
398 |
+
* @param int $limit optional, for large data sets, the number of results to return - defaults to 1000, upper limit set at 15000
|
399 |
* @return array list of email addresses that did not open a campaign
|
400 |
*/
|
401 |
function campaignNotOpenedAIM($cid, $start=0, $limit=1000) {
|
411 |
*
|
412 |
* @section Campaign AIM
|
413 |
*
|
414 |
+
* @param string $cid the campaign id to get click stats for (can be gathered using campaigns($id))
|
415 |
* @param string $url the URL of the link that was clicked on
|
416 |
+
* @param int $start optional, for large data sets, the page number to start at - defaults to 1st page of data
|
417 |
+
* @param int $limit optional, for large data sets, the number of results to return - defaults to 1000, upper limit set at 15000
|
418 |
* @return array Array of structs containing email addresses and click counts
|
419 |
* @returnf string email Email address that opened the campaign
|
420 |
* @returnf integer clicks Total number of times the URL was clicked on by this email address
|
433 |
*
|
434 |
* @section Campaign AIM
|
435 |
*
|
436 |
+
* @param string $cid the campaign id to get stats for (can be gathered using campaigns($id))
|
437 |
* @param string $email_address the email address to get activity history for
|
438 |
* @return array Array of structs containing actions (opens and clicks) that the email took, with timestamps
|
439 |
* @returnf string action The action taken (open or click)
|
468 |
* Get the list of merge tags for a given list, including their name, tag, and required setting
|
469 |
*
|
470 |
* @section List Related
|
|
|
471 |
*
|
472 |
* @param string $id the list id to connect to
|
473 |
* @return array list of merge tags for the list
|
481 |
return $this->callServer("listMergeVars", $params);
|
482 |
}
|
483 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
484 |
/**
|
485 |
* Get the list of interest groups for a given list, including the label and form information
|
486 |
*
|
487 |
* @section List Related
|
|
|
488 |
*
|
489 |
* @param string $id the list id to connect to
|
490 |
* @return struct list of interest groups for the list
|
498 |
return $this->callServer("listInterestGroups", $params);
|
499 |
}
|
500 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
501 |
/**
|
502 |
* Subscribe the provided email to a list
|
503 |
*
|
508 |
*
|
509 |
* @param string $id the list id to connect to
|
510 |
* @param string $email_address the email address to subscribe
|
511 |
+
* @param array $merge_vars array of merges for the email (FNAME, LNAME, etc.) (see examples below for handling "blank" arrays)
|
|
|
|
|
512 |
* @param string $email_type optional - email type preference for the email (html or text, defaults to html)
|
513 |
+
* @param boolean $double_optin optional - flag to control whether a double opt-in confirmation message is sent, defaults to true
|
514 |
* @return boolean true on success, false on failure. When using MCAPI.class.php, the value can be tested and error messages pulled from the MCAPI object (see below)
|
515 |
*/
|
516 |
function listSubscribe($id, $email_address, $merge_vars, $email_type='html', $double_optin=true) {
|
528 |
*
|
529 |
* @section List Related
|
530 |
* @example mcapi_listUnsubscribe.php
|
|
|
531 |
*
|
532 |
* @param string $id the list id to connect to
|
533 |
* @param string $email_address the email address to unsubscribe
|
550 |
* Edit the email address, merge fields, and interest groups for a list member
|
551 |
*
|
552 |
* @section List Related
|
|
|
553 |
*
|
554 |
* @param string $id the list id to connect to
|
555 |
* @param string $email_address the current email address of the member to update
|
582 |
* @return struct Array of result counts and any errors that occurred
|
583 |
* @returnf integer success_count Number of email addresses that were succesfully added/updated
|
584 |
* @returnf integer error_count Number of email addresses that failed during addition/updating
|
585 |
+
* @returnf array errors Array of error structs. Each error struct will contain "code", "message", and "email_address"
|
586 |
*/
|
587 |
function listBatchSubscribe($id, $batch, $double_optin=true, $update_existing=false, $replace_interests=true) {
|
588 |
$params = array();
|
598 |
* Unsubscribe a batch of email addresses to a list
|
599 |
*
|
600 |
* @section List Related
|
|
|
601 |
*
|
602 |
* @param string $id the list id to connect to
|
603 |
* @param array $emails array of email addresses to unsubscribe
|
607 |
* @return struct Array of result counts and any errors that occurred
|
608 |
* @returnf integer success_count Number of email addresses that were succesfully added/updated
|
609 |
* @returnf integer error_count Number of email addresses that failed during addition/updating
|
610 |
+
* @returnf array errors Array of error structs. Each error struct will contain "code", "message", and "email_address"
|
611 |
*/
|
612 |
function listBatchUnsubscribe($id, $emails, $delete_member=false, $send_goodbye=true, $send_notify=false) {
|
613 |
$params = array();
|
620 |
}
|
621 |
|
622 |
/**
|
623 |
+
* Get all of the list members of a list that are of a particular status
|
624 |
*
|
625 |
* @section List Related
|
626 |
* @example mcapi_listMembers.php
|
627 |
*
|
628 |
* @param string $id the list id to connect to
|
629 |
* @param string $status the status to get members for - one of(subscribed, unsubscribed, or cleaned), defaults to subscribed
|
630 |
+
* @param int $start optional, for large data sets, the page number to start at - defaults to 1st page of data
|
631 |
+
* @param int $limit optional, for large data sets, the number of results to return - defaults to 100, upper limit set at 15000
|
632 |
* @return array Array of list member structs (see Returned Fields for details)
|
633 |
* @returnf string email Member email address
|
634 |
* @returnf date timestamp timestamp of their associated status(date subscribed, unsubscribed, or cleaned)
|
647 |
*
|
648 |
* @section List Related
|
649 |
* @example mcapi_listMemberInfo.php
|
|
|
|
|
650 |
* @param string $id the list id to connect to
|
651 |
* @param string $email_address the member email address to get information for
|
652 |
* @return array array of list member info (see Returned Fields for details)
|
654 |
* @returnf string email_type The type of emails this customer asked to get: html or text
|
655 |
* @returnf array merges An associative array of all the merge tags and the data for those tags for this email address
|
656 |
* @returnf string status The subscription status for this email address, either subscribed, unsubscribed or cleaned
|
|
|
|
|
657 |
* @returnf date timestamp The time this email address was added to the list
|
658 |
*/
|
659 |
function listMemberInfo($id, $email_address) {
|
663 |
return $this->callServer("listMemberInfo", $params);
|
664 |
}
|
665 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
666 |
/**
|
667 |
* Internal function - proxy method for certain XML-RPC calls | DO NOT CALL
|
668 |
* @param mixed Method to call, with any parameters to pass along
|
680 |
function callServer($method, $params) {
|
681 |
//Always include the user id if we're not loggin in
|
682 |
if($method != "login") {
|
683 |
+
$params["uid"] = $this->uuid;
|
684 |
}
|
685 |
|
686 |
$post_vars = $this->httpBuildQuery($params);
|
687 |
|
688 |
$payload = "POST " . $this->apiUrl["path"] . "?" . $this->apiUrl["query"] . "&method=" . $method . " HTTP/1.0\r\n";
|
689 |
$payload .= "Host: " . $this->apiUrl["host"] . "\r\n";
|
|
|
690 |
$payload .= "Content-type: application/x-www-form-urlencoded\r\n";
|
691 |
$payload .= "Content-length: " . strlen($post_vars) . "\r\n";
|
692 |
$payload .= "Connection: close \r\n\r\n";
|
696 |
$sock = fsockopen($this->apiUrl["host"], 80, $errno, $errstr, $this->timeout);
|
697 |
if(!$sock) {
|
698 |
$this->errorMessage = "Could not connect (ERR $errno: $errstr)";
|
699 |
+
$this->errorCode = "SERVER_ERROR";
|
700 |
ob_end_clean();
|
701 |
return false;
|
702 |
}
|
715 |
|
716 |
$serial = unserialize($response);
|
717 |
if($response && $serial === false) {
|
718 |
+
$response = array("error" => "Bad Response. Got This: " . $response, "code" => "SERVER_ERROR");
|
719 |
} else {
|
720 |
$response = $serial;
|
721 |
}
|
751 |
}
|
752 |
}
|
753 |
|
754 |
+
?>
|
mailchimp.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: MailChimp
|
4 |
Plugin URI: http://mailchimp.com/api/plugins/wordpress
|
5 |
Description: The MailChimp plugin allows you to easily setup a Subscribe box for your MailChimp list - So easy a chimp could do it!
|
6 |
-
Version:
|
7 |
Author: MailChimp API Support Team
|
8 |
Author URI: http://mailchimp.com/api/
|
9 |
*/
|
@@ -63,141 +63,115 @@ echo "
|
|
63 |
";
|
64 |
}//mc_main_css
|
65 |
|
66 |
-
// Hook for initializing the plugins, mostly for i18n
|
67 |
-
add_action( 'init', 'mc_plugin_init' );
|
68 |
-
|
69 |
-
// Hook for our css
|
70 |
add_action('admin_head', 'mc_admin_css');
|
71 |
add_action('wp_head', 'mc_main_css');
|
72 |
|
73 |
-
|
74 |
// Hook for adding admin menus
|
75 |
add_action('admin_menu', 'mc_add_pages');
|
76 |
|
77 |
-
// Initialize this plugin. Called by 'init' hook.
|
78 |
-
function mc_plugin_init(){
|
79 |
-
//the "complicate" path is so people can use this with WPMU or just move things around
|
80 |
-
load_plugin_textdomain( 'mailchimp_i18n', str_replace(ABSPATH,'',dirname(__FILE__).'/po') );
|
81 |
-
}
|
82 |
-
|
83 |
// action function for above hook
|
84 |
-
function mc_add_pages(){
|
85 |
|
86 |
//7 is lowest w/ Plugin Editing capability
|
87 |
-
add_options_page(
|
88 |
}
|
89 |
|
90 |
-
|
91 |
-
// __( '', 'mailchimp_i18n' )
|
92 |
-
|
93 |
function mc_setup_page(){
|
94 |
-
|
95 |
-
$msg = '';
|
96 |
-
if (get_option('mc_password')!=''){
|
97 |
-
//some upgrade code for < 0.5 users - we want to rip out the password we've been saving.
|
98 |
-
$api = new MCAPI(get_option('mc_username'), get_option('mc_password'));
|
99 |
-
if ($api->errorCode == ''){
|
100 |
-
update_option('mc_apikey', $api->api_key);
|
101 |
-
//this should already be here, but let's make sure anyway
|
102 |
-
$req = $api->getAffiliateInfo();
|
103 |
-
update_option('mc_user_id', $req['user_id']);
|
104 |
-
} else {
|
105 |
-
$msg = "<span class='error_msg'>".__( "While upgrading the plugin setup, we were unable to login to your account. You will need to login again and setup your list.", 'mailchimp_i18n' )."<br/>";
|
106 |
-
}
|
107 |
-
delete_option('mc_password');
|
108 |
-
}
|
109 |
?>
|
110 |
<div class="wrap">
|
111 |
-
<h2
|
112 |
<?php
|
113 |
-
if ($_REQUEST['action']==='logout'){
|
114 |
-
update_option('mc_apikey', '');
|
115 |
-
}
|
116 |
//see if we need to set/change the username & password.
|
117 |
-
if (isset($_REQUEST['mc_username']) && isset($_REQUEST['
|
118 |
-
$
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
}
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
}
|
138 |
}
|
139 |
-
if ($
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
$
|
147 |
-
if (!is_array($mv)){
|
148 |
-
$mv = unserialize($mv);
|
149 |
-
}
|
150 |
-
if (is_array($mv)){
|
151 |
-
foreach($mv as $var){
|
152 |
-
$opt = 'mc_mv_'.$var['tag'];
|
153 |
-
delete_option($opt);
|
154 |
-
}
|
155 |
-
}
|
156 |
-
delete_option('mc_merge_vars');
|
157 |
}
|
158 |
//set these for the form fields below
|
159 |
$user = $_REQUEST['mc_username'];
|
|
|
160 |
} else {
|
161 |
$user = get_option('mc_username');
|
162 |
$pass = get_option('mc_password');
|
163 |
}
|
164 |
-
if (
|
165 |
-
|
166 |
-
$api = new MCAPI('no_login','is_needed');
|
167 |
$lists = $api->lists();
|
168 |
-
|
169 |
foreach($lists as $list){ if ($list['id']==$_REQUEST['mc_list_id']){ $list_id = $_REQUEST['mc_list_id']; $list_name = $list['name']; } }
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
update_option('mc_form_border_width','1');
|
180 |
-
update_option('mc_form_border_color','ccc');
|
181 |
-
update_option('mc_form_background','ffffcc');
|
182 |
-
update_option('mc_form_text_color','666666');
|
183 |
-
|
184 |
-
$mv = $api->listMergeVars($list_id);
|
185 |
-
$ig = $api->listInterestGroups($list_id);
|
186 |
-
update_option('mc_merge_vars', serialize( $mv ) );
|
187 |
-
foreach($mv as $var){
|
188 |
-
$opt = 'mc_mv_'.$var['tag'];
|
189 |
-
//turn them all on by default
|
190 |
-
update_option($opt, 'on' );
|
191 |
-
}
|
192 |
-
update_option('mc_interest_groups', serialize( $ig ) );
|
193 |
-
update_option('mc_show_interest_groups', 'on' );
|
194 |
-
$msg = '<span class="success_msg">'.
|
195 |
-
sprintf(__( 'Success! Loaded and saved the info for %d Merge Variables and %d Interest Groups from your list'),
|
196 |
-
sizeof($mv) , sizeof($ig) ).
|
197 |
-
' "'.$list_name.'"<br/><br/>'.
|
198 |
-
__('Now you should either Turn On the MailChimp Widget or change your options below, then turn it on.', 'mailchimp_i18n').'</span>';
|
199 |
-
}
|
200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
}
|
202 |
if (isset($_REQUEST['reset_list'])){
|
203 |
delete_option('mc_list_id');
|
@@ -214,19 +188,9 @@ if (isset($_REQUEST['reset_list'])){
|
|
214 |
delete_option('mc_form_background');
|
215 |
delete_option('mc_form_text_color');
|
216 |
|
217 |
-
$msg = '<span class="success_msg">
|
218 |
}
|
219 |
if (isset($_REQUEST['change_form_settings'])){
|
220 |
-
if (isset($_REQUEST['mc_rewards']) && $_REQUEST['mc_rewards'] != get_option('mc_rewards')){
|
221 |
-
update_option('mc_rewards', 'on');
|
222 |
-
if ($msg) $msg .= '<br/>';
|
223 |
-
$msg .= '<span class="success_msg">'.__('Monkey Rewards turned On!', 'mailchimp_i18n').'</span>';
|
224 |
-
} else if (get_option('mc_rewards')!='off') {
|
225 |
-
update_option('mc_rewards', 'off');
|
226 |
-
if ($msg) $msg .= '<br/>';
|
227 |
-
$msg .= '<span class="success_msg">'.__('Monkey Rewards turned Off!', 'mailchimp_i18n').'</span>';
|
228 |
-
}
|
229 |
-
|
230 |
$content = stripslashes($_REQUEST['mc_header_content']);
|
231 |
$content = str_replace("\r\n","<br/>", $content);
|
232 |
update_option('mc_header_content', $content );
|
@@ -252,10 +216,7 @@ if (isset($_REQUEST['change_form_settings'])){
|
|
252 |
} else {
|
253 |
update_option('mc_show_interest_groups','off');
|
254 |
}
|
255 |
-
$mv = get_option('mc_merge_vars');
|
256 |
-
if (!is_array($mv)){
|
257 |
-
$mv = unserialize(get_option('mc_merge_vars'));
|
258 |
-
}
|
259 |
foreach($mv as $var){
|
260 |
$opt = 'mc_mv_'.$var['tag'];
|
261 |
if (isset($_REQUEST[$opt]) || $var['req']=='Y'){
|
@@ -264,7 +225,7 @@ if (isset($_REQUEST['change_form_settings'])){
|
|
264 |
update_option($opt,'off');
|
265 |
}
|
266 |
}
|
267 |
-
$msg = '<span class="success_msg">
|
268 |
|
269 |
}
|
270 |
if ($msg){
|
@@ -272,91 +233,72 @@ if ($msg){
|
|
272 |
}
|
273 |
?>
|
274 |
<form method="post" action="options-general.php?page=mc_setup_page">
|
275 |
-
<?php wp_nonce_field('update-options');
|
276 |
-
|
277 |
-
|
278 |
-
<h3><?php echo __('Login Info', 'mailchimp_i18n');?></h3>
|
279 |
-
<?php echo __('To start using the MailChimp plugin, we first need to login and get your API Key. Please enter your MailChimp username and password below.', 'mailchimp_i18n'); ?>
|
280 |
-
<br/>
|
281 |
-
<?php echo __("Don't have a MailChimp account? <a href='http://www.mailchimp.com/tryit.phtml' target='_blank'>Try one for Free</a>!", 'mailchimp_i18n'); ?>
|
282 |
-
<br/>
|
283 |
<table class="form-table">
|
284 |
<tr valign="top">
|
285 |
-
<th scope="row"
|
286 |
<td><input name="mc_username" type="text" id="mc_username" class="code" value="<?php echo $user; ?>" size="20" /></td>
|
287 |
</tr>
|
288 |
<tr valign="top">
|
289 |
-
<th scope="row"
|
290 |
<td><input name="mc_password" type="text" id="mc_password" class="code" value="<?php echo $pass; ?>" size="20" /></td>
|
291 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
292 |
</table>
|
|
|
|
|
293 |
<input type="hidden" name="action" value="update"/>
|
294 |
<input type="hidden" name="page_options" value="mc_username,mc_password" />
|
295 |
-
<input type="submit" name="Submit" value="
|
296 |
-
</form>
|
297 |
<?php
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
echo '</p>';
|
306 |
-
} else {
|
307 |
-
?>
|
308 |
-
<table style="min-width:400px;"><tr><td><h3><?php echo __('Logged in as', 'mailchimp_i18n');?>: <?=get_option('mc_username')?></h3>
|
309 |
-
</td><td>
|
310 |
-
<form method="post" action="options-general.php?page=mc_setup_page">
|
311 |
-
<input type="hidden" name="action" value="logout"/>
|
312 |
-
<input type="submit" name="Submit" value="<?php echo __('Logout', 'mailchimp_i18n');?>" class="button" />
|
313 |
-
</form>
|
314 |
-
</td></tr></table>
|
315 |
-
<?php
|
316 |
}
|
317 |
?>
|
|
|
|
|
318 |
<?php
|
319 |
//Just get out if nothing else matters...
|
320 |
-
if (get_option('
|
321 |
|
322 |
-
if (get_option('
|
323 |
?>
|
324 |
-
<?php wp_nonce_field('update-options'); ?>
|
325 |
-
<h3><?php echo __('Your Lists', 'mailchimp_i18n')?></h3>
|
326 |
-
<?php echo __('Please select the List you wish to create a Signup Form for.', 'mailchimp_i18n');?><br/>
|
327 |
<form method="post" action="options-general.php?page=mc_setup_page">
|
|
|
|
|
|
|
328 |
<?php
|
329 |
$api = new MCAPI(get_option('mc_username'), get_option('mc_password'));
|
330 |
$lists = $api->lists();
|
331 |
rsort($lists);
|
|
|
|
|
|
|
332 |
if (sizeof($lists)==0){
|
333 |
-
echo "<span class='error_msg'>"
|
334 |
-
|
335 |
-
"<a href='http://www.mailchimp.com/'>MailChimp</a>")."</span>";
|
336 |
-
} else {
|
337 |
-
echo '<table style="min-width:400px"><tr><td>
|
338 |
-
<select name="mc_list_id" height="100px" style="min-width:200px;">
|
339 |
-
<option value=""> --- '.__('Select A List','mailchimp_i18n').' --- </option>';
|
340 |
-
foreach ($lists as $list){
|
341 |
-
if ($list['id'] == get_option('mc_list_id')){
|
342 |
-
$sel = ' selected ';
|
343 |
-
} else {
|
344 |
-
$sel = '';
|
345 |
-
}
|
346 |
-
echo '<option value="'.$list['id'].'" '.$sel.'>'.$list['name'].'</option>';
|
347 |
-
}
|
348 |
?>
|
349 |
-
|
350 |
-
|
351 |
<input type="hidden" name="action" value="update" />
|
352 |
<input type="hidden" name="page_options" value="mc_list_id" />
|
353 |
-
<input type="submit" name="Submit" value="
|
354 |
-
</
|
355 |
</form>
|
356 |
-
<br/>
|
357 |
<?php
|
358 |
-
|
359 |
-
|
360 |
//display the selected list...
|
361 |
?>
|
362 |
<form method="post" action="options-general.php?page=mc_setup_page">
|
@@ -364,89 +306,77 @@ if (get_option('mc_apikey')!=''){
|
|
364 |
<p class="submit">
|
365 |
<input type="hidden" name="action" value="update" />
|
366 |
<input type="hidden" name="page_options" value="mc_list_id" />
|
367 |
-
<input type="submit" name="reset_list" value="
|
368 |
</p>
|
369 |
</form>
|
370 |
-
<h3
|
371 |
-
<h4
|
372 |
<?php
|
373 |
}
|
374 |
//Just get out if nothing else matters...
|
375 |
if (get_option('mc_list_id') == '') return;
|
376 |
-
|
377 |
-
$
|
378 |
-
|
379 |
-
//apparently in WP 2.6 get_option() unserializes arrays for us.
|
380 |
-
$mv = unserialize($mv);
|
381 |
-
$ig = unserialize($ig);
|
382 |
-
}
|
383 |
-
if (!is_array($ig)){
|
384 |
-
//means we got false returned
|
385 |
-
$ig = unserialize($ig);
|
386 |
-
}
|
387 |
?>
|
388 |
<form method="post" action="options-general.php?page=mc_setup_page">
|
389 |
<?php wp_nonce_field('update-options'); ?>
|
390 |
<div style="width:600px;">
|
391 |
<table class="widefat">
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
412 |
|
413 |
-
<tr valign="top">
|
414 |
-
<th scope="row"><?php echo __('Custom Styling', 'mailchimp_i18n');?>:</th>
|
415 |
-
<td>
|
416 |
-
<table class="widefat">
|
417 |
-
<tr><th><?php echo __('Turned On?', 'mailchimp_i18n');?></th><td><input type="checkbox" name="mc_custom_style" <?php if (get_option('mc_custom_style')=='on'){echo 'checked';}?> ></td></tr>
|
418 |
-
<tr><th><?php echo __('Border Width', 'mailchimp_i18n');?>:</th><td><input type="text" name="mc_form_border_width" size="3" maxlength="3" value="<?php echo get_option('mc_form_border_width');?>"> px<br/>
|
419 |
-
<i><?php echo __('Set to 0 for no border, do not enter <strong>px</strong>!', 'mailchimp_i18n');?></i>
|
420 |
-
</td></tr>
|
421 |
-
<tr><th><?php echo __('Border Color', 'mailchimp_i18n');?>:</th><td>#<input type="text" name="mc_form_border_color" size="7" maxlength="6" value="<?php echo get_option('mc_form_border_color');?>"><br/>
|
422 |
-
<i><?php echo __('do not enter initial <strong>#</strong>', 'mailchimp_i18n');?></i>
|
423 |
-
</td></tr>
|
424 |
-
<tr><th>Text Color:</th><td>#<input type="text" name="mc_form_text_color" size="7" maxlength="6" value="<?php echo get_option('mc_form_text_color');?>"><br/>
|
425 |
-
<i><?php echo __('do not enter initial <strong>#</strong>', 'mailchimp_i18n');?></i>
|
426 |
-
</td></tr>
|
427 |
-
<tr><th>Background Color:</th><td>#<input type="text" name="mc_form_background" size="7" maxlength="6" value="<?php echo get_option('mc_form_background');?>"><br/>
|
428 |
-
<i><?php echo __('do not enter initial <strong>#</strong>', 'mailchimp_i18n');?></i>
|
429 |
-
</td></tr>
|
430 |
-
</table>
|
431 |
</td>
|
432 |
</tr>
|
433 |
</table>
|
434 |
</div>
|
435 |
|
436 |
<div style="width:400px;">
|
437 |
-
<h4
|
438 |
<?php
|
439 |
if (sizeof($mv)==0){
|
440 |
-
echo "<i>
|
441 |
} else {
|
442 |
?>
|
443 |
|
444 |
<table class='widefat'>
|
445 |
<tr valign="top">
|
446 |
-
<th
|
447 |
-
<th
|
448 |
-
<th
|
449 |
-
<th
|
450 |
</tr>
|
451 |
<?php
|
452 |
foreach($mv as $var){
|
@@ -466,24 +396,25 @@ if (sizeof($mv)==0){
|
|
466 |
}
|
467 |
echo '</table>';
|
468 |
}
|
469 |
-
echo '<h4>
|
470 |
-
if (
|
471 |
-
echo "<i>
|
|
|
472 |
} else {
|
473 |
?>
|
474 |
<table class='widefat'>
|
475 |
<tr valign="top">
|
476 |
-
|
477 |
-
<
|
|
|
478 |
</th></tr>
|
479 |
-
<
|
480 |
-
<th><?php echo __('Name', 'mailchimp_i18n');?>:</th><th><?php echo $ig['name']; ?></th>
|
481 |
</tr>
|
482 |
<tr valign="top">
|
483 |
-
<th
|
484 |
</tr>
|
485 |
<tr valign="top">
|
486 |
-
<th
|
487 |
<?php
|
488 |
foreach($ig['groups'] as $interest){
|
489 |
echo '<li>'.$interest;
|
@@ -494,7 +425,7 @@ echo '</div>';
|
|
494 |
?>
|
495 |
<p class="submit">
|
496 |
<input type="hidden" name="action" value="update" />
|
497 |
-
<input type="submit" name="change_form_settings" value="
|
498 |
</p>
|
499 |
</form>
|
500 |
</div>
|
@@ -508,24 +439,16 @@ function mc_register_widgets(){
|
|
508 |
if (!function_exists('register_sidebar_widget')) {
|
509 |
return;
|
510 |
}
|
511 |
-
register_sidebar_widget(
|
512 |
|
513 |
}
|
514 |
function mc_display_widget(){
|
515 |
-
|
516 |
-
|
517 |
-
if (!is_array($mv)){
|
518 |
-
//apparently in WP 2.6 get_option() unserializes arrays for us.
|
519 |
-
$mv = unserialize($mv);
|
520 |
-
}
|
521 |
-
if (!is_array($ig)){
|
522 |
-
$ig = unserialize($ig);
|
523 |
-
}
|
524 |
-
|
525 |
$msg = '';
|
526 |
if (isset($_REQUEST['mc_signup'])){
|
527 |
$failed = false;
|
528 |
-
|
529 |
$email = $_REQUEST['mc_mv_EMAIL'];
|
530 |
$merge = array();
|
531 |
$errs = array();
|
@@ -551,25 +474,18 @@ function mc_display_widget(){
|
|
551 |
}
|
552 |
}
|
553 |
if (!$failed){
|
554 |
-
|
555 |
-
|
556 |
-
unset($merge[$k]);
|
557 |
-
}
|
558 |
-
}
|
559 |
-
if (sizeof($merge) == 0 || $merge==''){ $merge = ''; }
|
560 |
-
|
561 |
-
$GLOBALS["mc_api_key"] = get_option('mc_apikey');
|
562 |
-
$api = new MCAPI('no_login','is_needed');
|
563 |
$retval = $api->listSubscribe( $listId, $email, $merge);
|
564 |
if (!$retval){
|
565 |
$failed = true;
|
566 |
$errs[] = $api->errorMessage;
|
567 |
} else {
|
568 |
-
$msg = "<br/><strong class='success_msg'>
|
569 |
}
|
570 |
}
|
571 |
if (sizeof($errs)>0){
|
572 |
-
$msg = '<br/>
|
573 |
foreach($errs as $error){
|
574 |
$msg .= '<li class="error_msg">'.$error.'</li>';
|
575 |
}
|
@@ -582,7 +498,7 @@ function mc_display_widget(){
|
|
582 |
<div class="mc_custom_border">
|
583 |
<a name="mc_signup_form"></a>
|
584 |
<?php echo get_option('mc_header_content');?>
|
585 |
-
<form method="POST" action="<?php echo $_SERVER['
|
586 |
<?php
|
587 |
if ($msg != ''){
|
588 |
echo '<span class="updated">'.$msg.'</span>';
|
@@ -590,13 +506,13 @@ function mc_display_widget(){
|
|
590 |
foreach($mv as $var){
|
591 |
$opt = 'mc_mv_'.$var['tag'];
|
592 |
if ($var['req'] || get_option($opt)=='on'){
|
593 |
-
echo ''.$var['name'].':<br/><input type="text" size="
|
594 |
if ($var['req']){ echo '*'; }
|
595 |
echo '<br/>';
|
596 |
}
|
597 |
}
|
598 |
-
echo '<sup style="clear:both;">* =
|
599 |
-
if (get_option('mc_show_interest_groups')=='on'
|
600 |
echo '<br/><br/><strong>'.$ig['name'].'</strong><br/>';
|
601 |
if ($ig['form_field']=='checkbox'){
|
602 |
foreach($ig['groups'] as $interest){
|
@@ -621,7 +537,7 @@ function mc_display_widget(){
|
|
621 |
</form>
|
622 |
<?php
|
623 |
if ( get_option('mc_rewards')=='on') {
|
624 |
-
echo '<div align="center">
|
625 |
}
|
626 |
?>
|
627 |
</div>
|
3 |
Plugin Name: MailChimp
|
4 |
Plugin URI: http://mailchimp.com/api/plugins/wordpress
|
5 |
Description: The MailChimp plugin allows you to easily setup a Subscribe box for your MailChimp list - So easy a chimp could do it!
|
6 |
+
Version: 0.1
|
7 |
Author: MailChimp API Support Team
|
8 |
Author URI: http://mailchimp.com/api/
|
9 |
*/
|
63 |
";
|
64 |
}//mc_main_css
|
65 |
|
|
|
|
|
|
|
|
|
66 |
add_action('admin_head', 'mc_admin_css');
|
67 |
add_action('wp_head', 'mc_main_css');
|
68 |
|
|
|
69 |
// Hook for adding admin menus
|
70 |
add_action('admin_menu', 'mc_add_pages');
|
71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
// action function for above hook
|
73 |
+
function mc_add_pages() {
|
74 |
|
75 |
//7 is lowest w/ Plugin Editing capability
|
76 |
+
add_options_page('MailChimp Setup', 'MailChimp Setup', 7, 'mc_setup_page', 'mc_setup_page');
|
77 |
}
|
78 |
|
|
|
|
|
|
|
79 |
function mc_setup_page(){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
?>
|
81 |
<div class="wrap">
|
82 |
+
<h2>MailChimp List Setup</h2>
|
83 |
<?php
|
|
|
|
|
|
|
84 |
//see if we need to set/change the username & password.
|
85 |
+
if (isset($_REQUEST['mc_username']) && isset($_REQUEST['mc_username'])){
|
86 |
+
if ($_REQUEST['mc_username']!=get_option('mc_username') || $_REQUEST['mc_password']!=get_option('mc_password')){
|
87 |
+
$delete_setup = false;
|
88 |
+
$api = new MCAPI($_REQUEST['mc_username'], $_REQUEST['mc_password']);
|
89 |
+
if ($api->errorCode == ''){
|
90 |
+
$msg = "<span class='success_msg'>Success! We were able to verify your username & password! Let's continue, shall we?</span>";
|
91 |
+
update_option('mc_username', $_REQUEST['mc_username']);
|
92 |
+
update_option('mc_password', $_REQUEST['mc_password']);
|
93 |
+
update_option('mc_user_id', $api->uuid);
|
94 |
+
if (get_option('mc_list_id')!=''){
|
95 |
+
$lists = $api->lists();
|
96 |
+
$delete_setup = true;
|
97 |
+
//but don't delete if the list still exists...
|
98 |
+
foreach($lists as $list){ if ($list['id']==get_option('mc_list_id')){ $list_id = $_REQUEST['mc_list_id']; $delete_setup=false; } }
|
99 |
+
}
|
100 |
+
} else {
|
101 |
+
$msg = "<span class='error_msg'>Uh-oh, we were unable to login and verify your username & password. Please check them and try again!<br/>";
|
102 |
+
$msg .= "The server said: <i>".$api->errorMessage."</i></span>";
|
103 |
+
if (get_option('mc_username')==''){
|
104 |
+
$delete_setup = true;
|
105 |
+
}
|
106 |
}
|
107 |
+
if ($delete_setup){
|
108 |
+
delete_option('mc_user_id');
|
109 |
+
delete_option('mc_username');
|
110 |
+
delete_option('mc_password');
|
111 |
+
delete_option('mc_rewards');
|
112 |
+
delete_option('mc_list_id');
|
113 |
+
delete_option('mc_list_name');
|
114 |
+
delete_option('mc_interest_groups');
|
115 |
+
delete_option('mc_show_interest_groups');
|
116 |
+
$mv = unserialize(get_option('mc_merge_vars'));
|
117 |
+
foreach($mv as $var){
|
118 |
+
$opt = 'mc_mv_'.$var['tag'];
|
119 |
+
delete_option($opt);
|
120 |
+
}
|
121 |
+
delete_option('mc_merge_vars');
|
122 |
}
|
123 |
}
|
124 |
+
if (isset($_REQUEST['mc_rewards']) && $_REQUEST['mc_rewards'] != get_option('mc_rewards')){
|
125 |
+
update_option('mc_rewards', 'on');
|
126 |
+
if ($msg) $msg .= '<br/>';
|
127 |
+
$msg .= '<span class="success_msg">Monkey Rewards turned On!</span>';
|
128 |
+
} else if (get_option('mc_rewards')!='off') {
|
129 |
+
update_option('mc_rewards', 'off');
|
130 |
+
if ($msg) $msg .= '<br/>';
|
131 |
+
$msg .= '<span class="success_msg">Monkey Rewards turned Off!</span>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
}
|
133 |
//set these for the form fields below
|
134 |
$user = $_REQUEST['mc_username'];
|
135 |
+
$pass = $_REQUEST['mc_password'];
|
136 |
} else {
|
137 |
$user = get_option('mc_username');
|
138 |
$pass = get_option('mc_password');
|
139 |
}
|
140 |
+
if (isset($_REQUEST['mc_list_id'])){
|
141 |
+
$api = new MCAPI(get_option('mc_username'), get_option('mc_password'));
|
|
|
142 |
$lists = $api->lists();
|
|
|
143 |
foreach($lists as $list){ if ($list['id']==$_REQUEST['mc_list_id']){ $list_id = $_REQUEST['mc_list_id']; $list_name = $list['name']; } }
|
144 |
+
if ($list_id == ''){
|
145 |
+
$msg = '<span class="error_msg">Uh-oh, something went wrong while trying to load List with ID: '.$_REQUEST['mc_list_id'].'</span>';
|
146 |
+
|
147 |
+
} else {
|
148 |
+
update_option('mc_list_id', $list_id);
|
149 |
+
update_option('mc_list_name', $list_name);
|
150 |
+
|
151 |
+
update_option('mc_header_content','<h2>Sign up for '.$list_name.'</h2>');
|
152 |
+
update_option('mc_submit_text','Subscribe');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
|
154 |
+
update_option('mc_custom_style','on');
|
155 |
+
update_option('mc_form_border_width','1');
|
156 |
+
update_option('mc_form_border_color','ccc');
|
157 |
+
update_option('mc_form_background','ffffcc');
|
158 |
+
update_option('mc_form_text_color','666666');
|
159 |
+
|
160 |
+
$mv = $api->listMergeVars($list_id);
|
161 |
+
$ig = $api->listInterestGroups($list_id);
|
162 |
+
update_option('mc_merge_vars', serialize( $mv ) );
|
163 |
+
foreach($mv as $var){
|
164 |
+
$opt = 'mc_mv_'.$var['tag'];
|
165 |
+
//turn them all on by default
|
166 |
+
update_option($opt, 'on' );
|
167 |
+
}
|
168 |
+
update_option('mc_interest_groups', serialize( $ig ) );
|
169 |
+
update_option('mc_show_interest_groups', 'on' );
|
170 |
+
$msg = '<span class="success_msg">Success! Loaded and saved the info for '.sizeof($mv).' Merge Variables and '.
|
171 |
+
sizeof($ig).' Interest Groups from your list "'.$list['name'].'"<br/><br/>
|
172 |
+
Now you should either Turn On the MailChimp Widget or change your options below, then turn it on.</span>';
|
173 |
+
}
|
174 |
+
|
175 |
}
|
176 |
if (isset($_REQUEST['reset_list'])){
|
177 |
delete_option('mc_list_id');
|
188 |
delete_option('mc_form_background');
|
189 |
delete_option('mc_form_text_color');
|
190 |
|
191 |
+
$msg = '<span class="success_msg">Successfully Reset your List selection... Now you get to pick again!</span>';
|
192 |
}
|
193 |
if (isset($_REQUEST['change_form_settings'])){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
$content = stripslashes($_REQUEST['mc_header_content']);
|
195 |
$content = str_replace("\r\n","<br/>", $content);
|
196 |
update_option('mc_header_content', $content );
|
216 |
} else {
|
217 |
update_option('mc_show_interest_groups','off');
|
218 |
}
|
219 |
+
$mv = unserialize(get_option('mc_merge_vars'));
|
|
|
|
|
|
|
220 |
foreach($mv as $var){
|
221 |
$opt = 'mc_mv_'.$var['tag'];
|
222 |
if (isset($_REQUEST[$opt]) || $var['req']=='Y'){
|
225 |
update_option($opt,'off');
|
226 |
}
|
227 |
}
|
228 |
+
$msg = '<span class="success_msg">Successfully Updated your List Subscribe Form Settings!</span>';
|
229 |
|
230 |
}
|
231 |
if ($msg){
|
233 |
}
|
234 |
?>
|
235 |
<form method="post" action="options-general.php?page=mc_setup_page">
|
236 |
+
<?php wp_nonce_field('update-options'); ?>
|
237 |
+
<h3>Login Info</h3>
|
238 |
+
To start using the MailChimp plugin, we first need to store your MailChimp Username & Password<br/>
|
|
|
|
|
|
|
|
|
|
|
239 |
<table class="form-table">
|
240 |
<tr valign="top">
|
241 |
+
<th scope="row">Username:</th>
|
242 |
<td><input name="mc_username" type="text" id="mc_username" class="code" value="<?php echo $user; ?>" size="20" /></td>
|
243 |
</tr>
|
244 |
<tr valign="top">
|
245 |
+
<th scope="row">Password:</th>
|
246 |
<td><input name="mc_password" type="text" id="mc_password" class="code" value="<?php echo $pass; ?>" size="20" /></td>
|
247 |
</tr>
|
248 |
+
<tr valign="top">
|
249 |
+
<th scope="row">Monkey Rewards:</th>
|
250 |
+
<td><input name="mc_rewards" type="checkbox" <?php if (get_option('mc_rewards')=='on' || get_option('mc_rewards')=='' ) {echo 'checked';} ?> id="mc_rewards" class="code" />
|
251 |
+
<i>turning this on will place a "powered by MailChimp" link in your form that will earn you credits with us. It is optional and can be turned on or off at any time.</i>
|
252 |
+
</td>
|
253 |
+
</tr>
|
254 |
</table>
|
255 |
+
|
256 |
+
<p class="submit">
|
257 |
<input type="hidden" name="action" value="update"/>
|
258 |
<input type="hidden" name="page_options" value="mc_username,mc_password" />
|
259 |
+
<input type="submit" name="Submit" value="Save & Check" class="button" />
|
|
|
260 |
<?php
|
261 |
+
if (get_option('mc_username')!=''){
|
262 |
+
echo '<strong>Notes:</strong><ul>
|
263 |
+
<li><i>Changing your settings at MailChimp.com may cause this to stop working.</i></li>
|
264 |
+
<li><i>Changing your username & password at MailChimp.com will cause this plugin to stop working!</i></li>
|
265 |
+
<li><i>If you change your login to a different account, the info you have setup below will be erased.</i></li>
|
266 |
+
<li><i>If any of that happens, no biggie - just reconfigure your login and the items below...</i></li></ul>
|
267 |
+
<br/>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
}
|
269 |
?>
|
270 |
+
</p>
|
271 |
+
</form>
|
272 |
<?php
|
273 |
//Just get out if nothing else matters...
|
274 |
+
if (get_option('mc_username') == '') return;
|
275 |
|
276 |
+
if (get_option('mc_list_id')==''){
|
277 |
?>
|
|
|
|
|
|
|
278 |
<form method="post" action="options-general.php?page=mc_setup_page">
|
279 |
+
<?php wp_nonce_field('update-options'); ?>
|
280 |
+
<h3>Your Lists</h3>
|
281 |
+
Please select the List you wish to create a Signup Form for.<br/>
|
282 |
<?php
|
283 |
$api = new MCAPI(get_option('mc_username'), get_option('mc_password'));
|
284 |
$lists = $api->lists();
|
285 |
rsort($lists);
|
286 |
+
foreach ($lists as $list){
|
287 |
+
echo '<input type="radio" name="mc_list_id" value="'.$list['id'].'"> <strong>'.$list['name'].'</strong><br/>';
|
288 |
+
}
|
289 |
if (sizeof($lists)==0){
|
290 |
+
echo "<span class='error_msg'>Uh-oh, you don't have any lists defined! Please visit <a href='http://www.mailchimp.com/'>MailChimp</a>, login, and setup a list before using this tool!</span>";
|
291 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
292 |
?>
|
293 |
+
<p class="submit">
|
|
|
294 |
<input type="hidden" name="action" value="update" />
|
295 |
<input type="hidden" name="page_options" value="mc_list_id" />
|
296 |
+
<input type="submit" name="Submit" value="Select List!" class="button" />
|
297 |
+
</p>
|
298 |
</form>
|
|
|
299 |
<?php
|
300 |
+
} //end select list
|
301 |
+
else {
|
302 |
//display the selected list...
|
303 |
?>
|
304 |
<form method="post" action="options-general.php?page=mc_setup_page">
|
306 |
<p class="submit">
|
307 |
<input type="hidden" name="action" value="update" />
|
308 |
<input type="hidden" name="page_options" value="mc_list_id" />
|
309 |
+
<input type="submit" name="reset_list" value="Reset List Options and Select again" class="button" />
|
310 |
</p>
|
311 |
</form>
|
312 |
+
<h3>Subscribe Form Widget Settings for this List:</h3>
|
313 |
+
<h4>Selected MailChimp List: <?php echo get_option('mc_list_name'); ?></h4>
|
314 |
<?php
|
315 |
}
|
316 |
//Just get out if nothing else matters...
|
317 |
if (get_option('mc_list_id') == '') return;
|
318 |
+
|
319 |
+
$mv = unserialize(get_option('mc_merge_vars'));
|
320 |
+
$ig = unserialize(get_option('mc_interest_groups'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
321 |
?>
|
322 |
<form method="post" action="options-general.php?page=mc_setup_page">
|
323 |
<?php wp_nonce_field('update-options'); ?>
|
324 |
<div style="width:600px;">
|
325 |
<table class="widefat">
|
326 |
+
<tr valign="top">
|
327 |
+
<th scope="row">Header content:</th>
|
328 |
+
<td>
|
329 |
+
<textarea name="mc_header_content" cols="50"><?php echo get_option('mc_header_content');?></textarea><br/>
|
330 |
+
<i>You can fill this with your own Text, HTML markup (including image links), or Nothing!</i>
|
331 |
+
</td>
|
332 |
+
</tr>
|
333 |
+
<tr valign="top">
|
334 |
+
<th scope="row">Submit Button text:</th>
|
335 |
+
<td>
|
336 |
+
<input type="text" name="mc_submit_text" size="30" value="<?php echo get_option('mc_submit_text');?>"/><br/>
|
337 |
+
<i>You can fill this with your own Text, HTML markup (including image links), or Nothing!</i>
|
338 |
+
</td>
|
339 |
+
</tr>
|
340 |
+
<tr valign="top">
|
341 |
+
<th scope="row">Custom Styling:</th>
|
342 |
+
<td>
|
343 |
+
<table class="widefat">
|
344 |
+
<tr><th>Turned On?</th><td><input type="checkbox" name="mc_custom_style" <?php if (get_option('mc_custom_style')=='on'){echo 'checked';}?> ></td></tr>
|
345 |
+
<tr><th>Border Width:</th><td><input type="text" name="mc_form_border_width" size="3" maxlength="3" value="<?php echo get_option('mc_form_border_width');?>"> px<br/>
|
346 |
+
<i>Set to 0 for no border, do not enter <strong>px</strong>!</i>
|
347 |
+
</td></tr>
|
348 |
+
<tr><th>Border Color:</th><td>#<input type="text" name="mc_form_border_color" size="7" maxlength="6" value="<?php echo get_option('mc_form_border_color');?>"><br/>
|
349 |
+
<i>do not enter initial <strong>#</strong></i>
|
350 |
+
</td></tr>
|
351 |
+
<tr><th>Text Color:</th><td>#<input type="text" name="mc_form_text_color" size="7" maxlength="6" value="<?php echo get_option('mc_form_text_color');?>"><br/>
|
352 |
+
<i>do not enter initial <strong>#</strong></i>
|
353 |
+
</td></tr>
|
354 |
+
<tr><th>Background Color:</th><td>#<input type="text" name="mc_form_background" size="7" maxlength="6" value="<?php echo get_option('mc_form_background');?>"><br/>
|
355 |
+
<i>do not enter initial <strong>#</strong></i>
|
356 |
+
</td></tr>
|
357 |
+
</td>
|
358 |
+
</tr>
|
359 |
+
</table>
|
360 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
361 |
</td>
|
362 |
</tr>
|
363 |
</table>
|
364 |
</div>
|
365 |
|
366 |
<div style="width:400px;">
|
367 |
+
<h4>Merge Variables Included</h4>
|
368 |
<?php
|
369 |
if (sizeof($mv)==0){
|
370 |
+
echo "<i>No Merge Variables found.</i>";
|
371 |
} else {
|
372 |
?>
|
373 |
|
374 |
<table class='widefat'>
|
375 |
<tr valign="top">
|
376 |
+
<th>Name</th>
|
377 |
+
<th>Tag</th>
|
378 |
+
<th>Required?</th>
|
379 |
+
<th>Include?</th>
|
380 |
</tr>
|
381 |
<?php
|
382 |
foreach($mv as $var){
|
396 |
}
|
397 |
echo '</table>';
|
398 |
}
|
399 |
+
echo '<h4>Interest Groups</h4>';
|
400 |
+
if ($ig=='' && $ig=='N'){
|
401 |
+
echo "<i>No Interest Groups Setup</i>";
|
402 |
+
echo ">>".get_option('mc_interest_groups');
|
403 |
} else {
|
404 |
?>
|
405 |
<table class='widefat'>
|
406 |
<tr valign="top">
|
407 |
+
|
408 |
+
<th width="75px">Show?</th><th>
|
409 |
+
<input name="mc_show_interest_groups" type="checkbox" ' <?php if (get_option('mc_show_interest_groups')=='on') { echo 'checked'; } ?> id="mc_show_interest_groups" class="code" />
|
410 |
</th></tr>
|
411 |
+
<th>Name:</th><th><?php echo $ig['name']; ?></th>
|
|
|
412 |
</tr>
|
413 |
<tr valign="top">
|
414 |
+
<th>Input Type:</th><td><?php echo $ig['form_field']; ?>
|
415 |
</tr>
|
416 |
<tr valign="top">
|
417 |
+
<th>Options:</th><td><ul>
|
418 |
<?php
|
419 |
foreach($ig['groups'] as $interest){
|
420 |
echo '<li>'.$interest;
|
425 |
?>
|
426 |
<p class="submit">
|
427 |
<input type="hidden" name="action" value="update" />
|
428 |
+
<input type="submit" name="change_form_settings" value="Update Subscribe Form Settings" class="button" />
|
429 |
</p>
|
430 |
</form>
|
431 |
</div>
|
439 |
if (!function_exists('register_sidebar_widget')) {
|
440 |
return;
|
441 |
}
|
442 |
+
register_sidebar_widget('MailChimp Widget', 'mc_display_widget');
|
443 |
|
444 |
}
|
445 |
function mc_display_widget(){
|
446 |
+
$mv = unserialize(get_option('mc_merge_vars'));
|
447 |
+
$ig = unserialize(get_option('mc_interest_groups'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
448 |
$msg = '';
|
449 |
if (isset($_REQUEST['mc_signup'])){
|
450 |
$failed = false;
|
451 |
+
$listId = get_option('mc_list_id');
|
452 |
$email = $_REQUEST['mc_mv_EMAIL'];
|
453 |
$merge = array();
|
454 |
$errs = array();
|
474 |
}
|
475 |
}
|
476 |
if (!$failed){
|
477 |
+
if (sizeof($merge) == 0){ $merge = array(''); }
|
478 |
+
$api = new MCAPI(get_option('mc_username'), get_option('mc_password'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
479 |
$retval = $api->listSubscribe( $listId, $email, $merge);
|
480 |
if (!$retval){
|
481 |
$failed = true;
|
482 |
$errs[] = $api->errorMessage;
|
483 |
} else {
|
484 |
+
$msg = "<br/><strong class='success_msg'>Success, you've been signed up! Please look for our confirmation email!</strong><br/>";
|
485 |
}
|
486 |
}
|
487 |
if (sizeof($errs)>0){
|
488 |
+
$msg = '<br/>Uhoh, we had problems!<ul>';
|
489 |
foreach($errs as $error){
|
490 |
$msg .= '<li class="error_msg">'.$error.'</li>';
|
491 |
}
|
498 |
<div class="mc_custom_border">
|
499 |
<a name="mc_signup_form"></a>
|
500 |
<?php echo get_option('mc_header_content');?>
|
501 |
+
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>#mc_signup_form">
|
502 |
<?php
|
503 |
if ($msg != ''){
|
504 |
echo '<span class="updated">'.$msg.'</span>';
|
506 |
foreach($mv as $var){
|
507 |
$opt = 'mc_mv_'.$var['tag'];
|
508 |
if ($var['req'] || get_option($opt)=='on'){
|
509 |
+
echo ''.$var['name'].':<br/><input type="text" size="20" value="" name="'.$opt.'">';
|
510 |
if ($var['req']){ echo '*'; }
|
511 |
echo '<br/>';
|
512 |
}
|
513 |
}
|
514 |
+
echo '<sup style="clear:both;">* = required field</sup>';
|
515 |
+
if (get_option('mc_show_interest_groups')=='on'){
|
516 |
echo '<br/><br/><strong>'.$ig['name'].'</strong><br/>';
|
517 |
if ($ig['form_field']=='checkbox'){
|
518 |
foreach($ig['groups'] as $interest){
|
537 |
</form>
|
538 |
<?php
|
539 |
if ( get_option('mc_rewards')=='on') {
|
540 |
+
echo '<div align="center">powered by <a href="http://www.mailchimp.com/affiliates/?aid='.get_option('mc_user_id').'&afl=1">MailChimp</a>!</div>';
|
541 |
}
|
542 |
?>
|
543 |
</div>
|
po/mailchimp_i18n-en_US.mo
DELETED
Binary file
|
po/mailchimp_i18n-en_US.po
DELETED
@@ -1,269 +0,0 @@
|
|
1 |
-
# SOME DESCRIPTIVE TITLE.
|
2 |
-
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3 |
-
# This file is distributed under the same license as the PACKAGE package.
|
4 |
-
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
-
#
|
6 |
-
msgid ""
|
7 |
-
msgstr ""
|
8 |
-
"Project-Id-Version: MailChimp Wordpress Plugin\n"
|
9 |
-
"Report-Msgid-Bugs-To: \n"
|
10 |
-
"POT-Creation-Date: 2008-10-14 11:15-0400\n"
|
11 |
-
"PO-Revision-Date: 2008-10-14 11:18-0500\n"
|
12 |
-
"Last-Translator: MailChimp API <api@mailchimp.com>\n"
|
13 |
-
"Language-Team: MailChimp API <api@mailchimp.com>\n"
|
14 |
-
"MIME-Version: 1.0\n"
|
15 |
-
"Content-Type: text/plain; charset=utf-8\n"
|
16 |
-
"Content-Transfer-Encoding: 8bit\n"
|
17 |
-
"X-Poedit-Language: English\n"
|
18 |
-
"X-Poedit-Country: UNITED STATES\n"
|
19 |
-
|
20 |
-
#: mailchimp.php:87
|
21 |
-
msgid "MailChimp Setup"
|
22 |
-
msgstr ""
|
23 |
-
|
24 |
-
#: mailchimp.php:105
|
25 |
-
msgid "While upgrading the plugin setup, we were unable to login to your account. You will need to login again and setup your list."
|
26 |
-
msgstr ""
|
27 |
-
|
28 |
-
#: mailchimp.php:111
|
29 |
-
msgid "MailChimp List Setup"
|
30 |
-
msgstr ""
|
31 |
-
|
32 |
-
#: mailchimp.php:121
|
33 |
-
msgid "Success! We were able to verify your username & password! Let's continue, shall we?"
|
34 |
-
msgstr ""
|
35 |
-
|
36 |
-
#: mailchimp.php:133
|
37 |
-
msgid "Uh-oh, we were unable to login and verify your username & password. Please check them and try again!"
|
38 |
-
msgstr ""
|
39 |
-
|
40 |
-
#: mailchimp.php:134
|
41 |
-
msgid "The server said:"
|
42 |
-
msgstr ""
|
43 |
-
|
44 |
-
#: mailchimp.php:175
|
45 |
-
msgid "Sign up for"
|
46 |
-
msgstr ""
|
47 |
-
|
48 |
-
#: mailchimp.php:176
|
49 |
-
msgid "Subscribe"
|
50 |
-
msgstr ""
|
51 |
-
|
52 |
-
#: mailchimp.php:195
|
53 |
-
#, php-format
|
54 |
-
msgid "Success! Loaded and saved the info for %d Merge Variables and %d Interest Groups from your list"
|
55 |
-
msgstr ""
|
56 |
-
|
57 |
-
#: mailchimp.php:198
|
58 |
-
msgid "Now you should either Turn On the MailChimp Widget or change your options below, then turn it on."
|
59 |
-
msgstr ""
|
60 |
-
|
61 |
-
#: mailchimp.php:217
|
62 |
-
msgid "Successfully Reset your List selection... Now you get to pick again!"
|
63 |
-
msgstr ""
|
64 |
-
|
65 |
-
#: mailchimp.php:223
|
66 |
-
msgid "Monkey Rewards turned On!"
|
67 |
-
msgstr ""
|
68 |
-
|
69 |
-
#: mailchimp.php:227
|
70 |
-
msgid "Monkey Rewards turned Off!"
|
71 |
-
msgstr ""
|
72 |
-
|
73 |
-
#: mailchimp.php:267
|
74 |
-
msgid "Successfully Updated your List Subscribe Form Settings!"
|
75 |
-
msgstr ""
|
76 |
-
|
77 |
-
#: mailchimp.php:278
|
78 |
-
msgid "Login Info"
|
79 |
-
msgstr ""
|
80 |
-
|
81 |
-
#: mailchimp.php:279
|
82 |
-
msgid "To start using the MailChimp plugin, we first need to login and get your API Key. Please enter your MailChimp username and password below."
|
83 |
-
msgstr ""
|
84 |
-
|
85 |
-
#: mailchimp.php:283
|
86 |
-
msgid "Username"
|
87 |
-
msgstr ""
|
88 |
-
|
89 |
-
#: mailchimp.php:287
|
90 |
-
msgid "Password"
|
91 |
-
msgstr ""
|
92 |
-
|
93 |
-
#: mailchimp.php:293
|
94 |
-
msgid "Save & Check"
|
95 |
-
msgstr ""
|
96 |
-
|
97 |
-
#: mailchimp.php:297
|
98 |
-
msgid "Notes"
|
99 |
-
msgstr ""
|
100 |
-
|
101 |
-
#: mailchimp.php:298
|
102 |
-
msgid "Changing your settings at MailChimp.com may cause this to stop working."
|
103 |
-
msgstr ""
|
104 |
-
|
105 |
-
#: mailchimp.php:299
|
106 |
-
msgid "If you change your login to a different account, the info you have setup below will be erased."
|
107 |
-
msgstr ""
|
108 |
-
|
109 |
-
#: mailchimp.php:300
|
110 |
-
msgid "If any of that happens, no biggie - just reconfigure your login and the items below..."
|
111 |
-
msgstr ""
|
112 |
-
|
113 |
-
#: mailchimp.php:306
|
114 |
-
msgid "Logged in as"
|
115 |
-
msgstr ""
|
116 |
-
|
117 |
-
#: mailchimp.php:310
|
118 |
-
msgid "Logout"
|
119 |
-
msgstr ""
|
120 |
-
|
121 |
-
#: mailchimp.php:323
|
122 |
-
msgid "Your Lists"
|
123 |
-
msgstr ""
|
124 |
-
|
125 |
-
#: mailchimp.php:324
|
126 |
-
msgid "Please select the List you wish to create a Signup Form for."
|
127 |
-
msgstr ""
|
128 |
-
|
129 |
-
#: mailchimp.php:332
|
130 |
-
#, php-format
|
131 |
-
msgid "Uh-oh, you don't have any lists defined! Please visit %s, login, and setup a list before using this tool!"
|
132 |
-
msgstr ""
|
133 |
-
|
134 |
-
#: mailchimp.php:337
|
135 |
-
msgid "Select A List"
|
136 |
-
msgstr ""
|
137 |
-
|
138 |
-
#: mailchimp.php:351
|
139 |
-
msgid "Update List"
|
140 |
-
msgstr ""
|
141 |
-
|
142 |
-
#: mailchimp.php:365
|
143 |
-
msgid "Reset List Options and Select again"
|
144 |
-
msgstr ""
|
145 |
-
|
146 |
-
#: mailchimp.php:368
|
147 |
-
msgid "Subscribe Form Widget Settings for this List"
|
148 |
-
msgstr ""
|
149 |
-
|
150 |
-
#: mailchimp.php:369
|
151 |
-
msgid "Selected MailChimp List"
|
152 |
-
msgstr ""
|
153 |
-
|
154 |
-
#: mailchimp.php:391
|
155 |
-
msgid "Monkey Rewards"
|
156 |
-
msgstr ""
|
157 |
-
|
158 |
-
#: mailchimp.php:393
|
159 |
-
msgid "turning this on will place a \"powered by MailChimp\" link in your form that will earn you credits with us. It is optional and can be turned on or off at any time."
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#: mailchimp.php:397
|
163 |
-
msgid "Header content"
|
164 |
-
msgstr ""
|
165 |
-
|
166 |
-
#: mailchimp.php:400
|
167 |
-
#: mailchimp.php:408
|
168 |
-
msgid "You can fill this with your own Text, HTML markup (including image links), or Nothing!"
|
169 |
-
msgstr ""
|
170 |
-
|
171 |
-
#: mailchimp.php:405
|
172 |
-
msgid "Submit Button text"
|
173 |
-
msgstr ""
|
174 |
-
|
175 |
-
#: mailchimp.php:413
|
176 |
-
msgid "Custom Styling"
|
177 |
-
msgstr ""
|
178 |
-
|
179 |
-
#: mailchimp.php:416
|
180 |
-
msgid "Turned On?"
|
181 |
-
msgstr ""
|
182 |
-
|
183 |
-
#: mailchimp.php:417
|
184 |
-
msgid "Border Width"
|
185 |
-
msgstr ""
|
186 |
-
|
187 |
-
#: mailchimp.php:418
|
188 |
-
msgid "Set to 0 for no border, do not enter <strong>px</strong>!"
|
189 |
-
msgstr ""
|
190 |
-
|
191 |
-
#: mailchimp.php:420
|
192 |
-
msgid "Border Color"
|
193 |
-
msgstr ""
|
194 |
-
|
195 |
-
#: mailchimp.php:421
|
196 |
-
#: mailchimp.php:424
|
197 |
-
#: mailchimp.php:427
|
198 |
-
msgid "do not enter initial <strong>#</strong>"
|
199 |
-
msgstr ""
|
200 |
-
|
201 |
-
#: mailchimp.php:436
|
202 |
-
msgid "Merge Variables Included"
|
203 |
-
msgstr ""
|
204 |
-
|
205 |
-
#: mailchimp.php:439
|
206 |
-
msgid "No Merge Variables found."
|
207 |
-
msgstr ""
|
208 |
-
|
209 |
-
#: mailchimp.php:445
|
210 |
-
#: mailchimp.php:479
|
211 |
-
msgid "Name"
|
212 |
-
msgstr ""
|
213 |
-
|
214 |
-
#: mailchimp.php:446
|
215 |
-
msgid "Tag"
|
216 |
-
msgstr ""
|
217 |
-
|
218 |
-
#: mailchimp.php:447
|
219 |
-
msgid "Required?"
|
220 |
-
msgstr ""
|
221 |
-
|
222 |
-
#: mailchimp.php:448
|
223 |
-
msgid "Include?"
|
224 |
-
msgstr ""
|
225 |
-
|
226 |
-
#: mailchimp.php:468
|
227 |
-
msgid "Interest Groups"
|
228 |
-
msgstr ""
|
229 |
-
|
230 |
-
#: mailchimp.php:470
|
231 |
-
msgid "No Interest Groups Setup for this List"
|
232 |
-
msgstr ""
|
233 |
-
|
234 |
-
#: mailchimp.php:475
|
235 |
-
msgid "Show?"
|
236 |
-
msgstr ""
|
237 |
-
|
238 |
-
#: mailchimp.php:482
|
239 |
-
msgid "Input Type"
|
240 |
-
msgstr ""
|
241 |
-
|
242 |
-
#: mailchimp.php:485
|
243 |
-
msgid "Options"
|
244 |
-
msgstr ""
|
245 |
-
|
246 |
-
#: mailchimp.php:496
|
247 |
-
msgid "Update Subscribe Form Settings"
|
248 |
-
msgstr ""
|
249 |
-
|
250 |
-
#: mailchimp.php:510
|
251 |
-
msgid "MailChimp Widget"
|
252 |
-
msgstr ""
|
253 |
-
|
254 |
-
#: mailchimp.php:567
|
255 |
-
msgid "Success, you've been signed up! Please look for our confirmation email!"
|
256 |
-
msgstr ""
|
257 |
-
|
258 |
-
#: mailchimp.php:571
|
259 |
-
msgid "Uhoh, we had problems!"
|
260 |
-
msgstr ""
|
261 |
-
|
262 |
-
#: mailchimp.php:597
|
263 |
-
msgid "required field"
|
264 |
-
msgstr ""
|
265 |
-
|
266 |
-
#: mailchimp.php:623
|
267 |
-
msgid "powered by"
|
268 |
-
msgstr ""
|
269 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
=== MailChimp List Subscribe Form ===
|
2 |
-
Contributors: mc_jesse
|
3 |
Tags: mailchimp, email, newsletter, signup, marketing, plugin, widget
|
4 |
Requires at least: 2.3
|
5 |
-
Tested up to: 2.
|
6 |
-
Stable tag:
|
7 |
Author URI: http://www.mailchimp.com/api/
|
8 |
-
Plugin URI: http://www.mailchimp.com/
|
9 |
|
10 |
The MailChimp plugin allows you to quickly and easily add a signup form for your MailChimp list.
|
11 |
|
@@ -40,7 +40,7 @@ This section describes how to install the plugin and get started using it.
|
|
40 |
1. Finally, go to Presentation->Widgets and enable the `MailChimp` widget
|
41 |
1. And you are DONE!
|
42 |
|
43 |
-
= Version 2.5
|
44 |
1. Unzip our archive and upload the entire `mailchimp` directory to your `/wp-content/plugins/` directory
|
45 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
46 |
1. Go to Settings and look for "MailChimp Setup" in the menu
|
@@ -53,32 +53,11 @@ This section describes how to install the plugin and get started using it.
|
|
53 |
|
54 |
= Advanced =
|
55 |
If you have a custom coded sidebar or something else special going on where you can't simply enable the widget
|
56 |
-
through the Wordpress GUI, all you need to do is:
|
57 |
-
|
58 |
-
If you are adding it inside a php code block, pop this in:
|
59 |
|
60 |
` mc_display_widget(); `
|
61 |
|
62 |
-
|
63 |
-
|
64 |
-
`<?php mc_display_widget(); ?>`
|
65 |
-
|
66 |
-
Where ever you want it to show up.
|
67 |
-
|
68 |
-
Note: in some environments you will need to install the Exec_PHP plugin to use that method of display. It can be found here:
|
69 |
-
http://wordpress.org/extend/plugins/exec-php/
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
== Internationalization (i18n) ==
|
74 |
-
Currently we have the plugin configured so it can be easily translated and the following languages supported:
|
75 |
-
* en_US - English in the U.S.
|
76 |
-
|
77 |
-
If your language is not listed above, feel free to create a translation. Here are the basic steps:
|
78 |
-
1. Copy "mailchimp_i18n-en_US.po" to "mailchimp_i18n-LANG_COUNTRY.po" - fill in LANG and COUNTRY with whatever you use for WPLANG in wp-config.php
|
79 |
-
2. Grab a transalation editor. [POedit](http://www.poedit.net/) works for us
|
80 |
-
3. Translate each line - if you need some context, just open up mailchimp.php and search for the line number or text
|
81 |
-
4. Send it to us - api@mailchimp.com - and we'll test it and include it with our next release
|
82 |
|
83 |
|
84 |
== Frequently Asked Questions ==
|
@@ -95,14 +74,6 @@ To learn more, just check out our site: [MailChimp](http://www.mailchimp.com/lea
|
|
95 |
*Absolutely not!* We welcome you to come signup for a [FREE Trial Account](http://www.mailchimp.com/tryit.phtml) and
|
96 |
see if you find it useful.
|
97 |
|
98 |
-
= I want this in my language, do you have a translation? =
|
99 |
-
Maybe! Look in the /po/ directory in our plugin package and see if your language is in there. If it is, great! If it is not, feel from to create one. Here are the basic steps:
|
100 |
-
1. Copy "mailchimp_i18n-en_US.po" to "mailchimp_i18n-LANG_COUNTRY.po" - fill in LANG and COUNTRY with whatever you use for WPLANG in wp-config.php
|
101 |
-
2. Grab a transalation editor. [POedit](http://www.poedit.net/) works for us
|
102 |
-
3. Translate each line - if you need some context, just open up mailchimp.php and search for the line number or text
|
103 |
-
4. Send it to us - api@mailchimp.com - and we'll test it and include it with our next release
|
104 |
-
|
105 |
-
|
106 |
|
107 |
== Screenshots ==
|
108 |
|
1 |
=== MailChimp List Subscribe Form ===
|
2 |
+
Contributors: mc_jesse
|
3 |
Tags: mailchimp, email, newsletter, signup, marketing, plugin, widget
|
4 |
Requires at least: 2.3
|
5 |
+
Tested up to: 2.5.1
|
6 |
+
Stable tag: 0.1
|
7 |
Author URI: http://www.mailchimp.com/api/
|
8 |
+
Plugin URI: http://www.mailchimp.com/api/wordpress.phtml
|
9 |
|
10 |
The MailChimp plugin allows you to quickly and easily add a signup form for your MailChimp list.
|
11 |
|
40 |
1. Finally, go to Presentation->Widgets and enable the `MailChimp` widget
|
41 |
1. And you are DONE!
|
42 |
|
43 |
+
= Version 2.5 =
|
44 |
1. Unzip our archive and upload the entire `mailchimp` directory to your `/wp-content/plugins/` directory
|
45 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
46 |
1. Go to Settings and look for "MailChimp Setup" in the menu
|
53 |
|
54 |
= Advanced =
|
55 |
If you have a custom coded sidebar or something else special going on where you can't simply enable the widget
|
56 |
+
through the Wordpress GUI, all you need to do is add:
|
|
|
|
|
57 |
|
58 |
` mc_display_widget(); `
|
59 |
|
60 |
+
Where ever you want it to show up.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
62 |
|
63 |
== Frequently Asked Questions ==
|
74 |
*Absolutely not!* We welcome you to come signup for a [FREE Trial Account](http://www.mailchimp.com/tryit.phtml) and
|
75 |
see if you find it useful.
|
76 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
|
78 |
== Screenshots ==
|
79 |
|