Version Description
Download this release
Release Info
Developer | crowdfavorite |
Plugin | MailChimp List Subscribe Form |
Version | 1.2 |
Comparing to | |
See all releases |
Code changes from version 1.1 to 1.2
- css/admin.css +10 -0
- css/ie.css +1 -0
- js/mailchimp.js +37 -29
- mailchimp.php +931 -439
- mailchimp_ajax.php +0 -8
- mailchimp_compat.php +100 -0
- mailchimp_includes.php +0 -202
- mailchimp_widget.php +223 -0
- readme.txt +22 -39
css/admin.css
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.error_msg {
|
2 |
+
color: red;
|
3 |
+
margin: 0px;
|
4 |
+
font-weight: bold;
|
5 |
+
}
|
6 |
+
.success_msg {
|
7 |
+
color: green;
|
8 |
+
margin: 0px;
|
9 |
+
font-weight: bold;
|
10 |
+
}
|
css/ie.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
#mc_message { padding-top:1em; }
|
js/mailchimp.js
CHANGED
@@ -1,29 +1,37 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
function
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Form submission functions for the MailChimp Widget */
|
2 |
+
;(function($){
|
3 |
+
$(function($) {
|
4 |
+
// Change our submit type from HTML (default) to JS
|
5 |
+
$('#mc_submit_type').val('js');
|
6 |
+
|
7 |
+
// Attach our form submitter action
|
8 |
+
$('#mc_signup_form').ajaxForm({
|
9 |
+
url: mailchimpSF.ajax_url,
|
10 |
+
type: 'POST',
|
11 |
+
dataType: 'text',
|
12 |
+
beforeSubmit: mc_beforeForm,
|
13 |
+
success: mc_success
|
14 |
+
});
|
15 |
+
});
|
16 |
+
|
17 |
+
function mc_beforeForm(){
|
18 |
+
// Disable the submit button
|
19 |
+
$('#mc_signup_submit').attr("disabled","disabled");
|
20 |
+
}
|
21 |
+
function mc_success(data){
|
22 |
+
// Re-enable the submit button
|
23 |
+
$('#mc_signup_submit').attr("disabled","");
|
24 |
+
|
25 |
+
// Put the response in the message div
|
26 |
+
$('#mc_message').html(data);
|
27 |
+
|
28 |
+
// See if we're successful, if so, wipe the fields
|
29 |
+
var reg = new RegExp("class='mc_success_msg'", 'i');
|
30 |
+
if (reg.test(data)){
|
31 |
+
$('#mc_signup_form').each(function(){
|
32 |
+
this.reset();
|
33 |
+
});
|
34 |
+
$('#mc_submit_type').val('js');
|
35 |
+
}
|
36 |
+
}
|
37 |
+
})(jQuery);
|
mailchimp.php
CHANGED
@@ -2,12 +2,11 @@
|
|
2 |
/*
|
3 |
Plugin Name: MailChimp
|
4 |
Plugin URI: http://www.mailchimp.com/plugins/mailchimp-wordpress-plugin/
|
5 |
-
Description: The MailChimp plugin allows you to easily
|
6 |
-
Version: 1.
|
7 |
-
Author: MailChimp
|
8 |
Author URI: http://mailchimp.com/api/
|
9 |
*/
|
10 |
-
|
11 |
/* Copyright 2008 MailChimp.com (email : api@mailchimp.com)
|
12 |
|
13 |
This program is free software; you can redistribute it and/or modify
|
@@ -24,239 +23,349 @@ Author URI: http://mailchimp.com/api/
|
|
24 |
along with this program; if not, write to the Free Software
|
25 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
26 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
if (!class_exists('MCAPI')) {
|
28 |
-
require_once(
|
29 |
}
|
|
|
30 |
// includes the widget code so it can be easily called either normally or via ajax
|
31 |
-
include_once('
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
if (get_option('
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
}
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
if (get_option('mc_custom_style')=='on'){
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
echo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
}
|
78 |
-
|
79 |
-
#
|
80 |
-
#mc_signup_form
|
81 |
-
#mc_signup_form .
|
82 |
-
#
|
83 |
-
#
|
84 |
-
|
85 |
-
|
86 |
-
#
|
87 |
-
#
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
#
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
}
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
echo '<script type="text/javascript">
|
103 |
-
var mc_ajax_url = "'.$url.'";
|
104 |
-
</script>';
|
105 |
}
|
106 |
|
107 |
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
// Hook for adding admin menus
|
118 |
add_action('admin_menu', 'mailchimpSF_add_pages');
|
119 |
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
}
|
129 |
|
130 |
-
//
|
131 |
-
|
132 |
-
|
133 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
}
|
|
|
|
|
135 |
|
136 |
-
function mailchimpSF_setup_page(){
|
137 |
|
138 |
-
|
139 |
-
if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
//some upgrade code for < 0.5 users - we want to rip out the password we've been saving.
|
141 |
$api = new MCAPI(get_option('mc_username'), get_option('mc_password'));
|
142 |
-
if ($api->errorCode
|
143 |
update_option('mc_apikey', $api->api_key);
|
144 |
//this should already be here, but let's make sure anyway
|
145 |
$req = $api->getAffiliateInfo();
|
146 |
update_option('mc_user_id', $req['user_id']);
|
147 |
} else {
|
148 |
-
$msg = "<
|
|
|
149 |
}
|
150 |
delete_option('mc_password');
|
151 |
}
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
//see if we need to set/change the username & password.
|
160 |
-
if (isset($_REQUEST['mc_apikey'])){
|
161 |
$delete_setup = false;
|
162 |
-
$api = new MCAPI($
|
163 |
$api->ping();
|
164 |
-
if ($api->errorCode
|
165 |
-
$msg = "<
|
166 |
-
update_option('mc_apikey', $
|
167 |
$req = $api->getAccountDetails();
|
168 |
update_option('mc_username', $req['username']);
|
169 |
update_option('mc_user_id', $req['user_id']);
|
170 |
-
|
|
|
171 |
$lists = $api->lists();
|
172 |
//but don't delete if the list still exists...
|
173 |
$delete_setup = true;
|
174 |
-
foreach($lists as $list)
|
|
|
|
|
|
|
|
|
|
|
175 |
}
|
176 |
} else {
|
177 |
-
$msg
|
178 |
-
$msg .= __(
|
179 |
-
|
|
|
180 |
$delete_setup = true;
|
181 |
}
|
182 |
}
|
|
|
|
|
|
|
|
|
|
|
183 |
if ($delete_setup){
|
184 |
-
|
185 |
-
delete_option('mc_rewards');
|
186 |
-
delete_option('mc_use_javascript');
|
187 |
-
delete_option('mc_use_unsub_link');
|
188 |
-
delete_option('mc_list_id');
|
189 |
-
delete_option('mc_list_name');
|
190 |
-
delete_option('mc_interest_groups');
|
191 |
-
delete_option('mc_show_interest_groups');
|
192 |
-
$mv = get_option('mc_merge_vars');
|
193 |
-
if (!is_array($mv)){
|
194 |
-
$mv = unserialize($mv);
|
195 |
-
}
|
196 |
-
if (is_array($mv)){
|
197 |
-
foreach($mv as $var){
|
198 |
-
$opt = 'mc_mv_'.$var['tag'];
|
199 |
-
delete_option($opt);
|
200 |
-
}
|
201 |
-
}
|
202 |
-
delete_option('mc_merge_vars');
|
203 |
}
|
|
|
204 |
//set these for the form fields below
|
205 |
$user = $_REQUEST['mc_username'];
|
206 |
-
} else {
|
207 |
-
$user = get_option('mc_username');
|
208 |
-
$apikey = get_option('mc_apikey');
|
209 |
-
}
|
210 |
-
if (get_option('mc_apikey')!=''){
|
211 |
-
$api = new MCAPI(get_option('mc_apikey'));
|
212 |
-
$lists = (array)$api->lists();
|
213 |
|
214 |
-
|
215 |
-
|
216 |
-
if ($list_id != ''){
|
217 |
-
update_option('mc_list_id', $list_id);
|
218 |
-
update_option('mc_list_name', $list_name);
|
219 |
-
if ($orig_list != $list_id){
|
220 |
-
update_option('mc_header_content',__( 'Sign up for', 'mailchimp_i18n' ).' '.$list_name);
|
221 |
-
update_option('mc_submit_text',__( 'Subscribe', 'mailchimp_i18n' ));
|
222 |
-
|
223 |
-
update_option('mc_custom_style','on');
|
224 |
-
update_option('mc_use_javascript','on');
|
225 |
-
update_option('mc_use_unsub_link','off');
|
226 |
-
update_option('mc_header_border_width','1');
|
227 |
-
update_option('mc_header_border_color','E3E3E3');
|
228 |
-
update_option('mc_header_background','FFFFFF');
|
229 |
-
update_option('mc_header_text_color','CC6600');
|
230 |
-
|
231 |
-
update_option('mc_form_border_width','1');
|
232 |
-
update_option('mc_form_border_color','C4D3EA');
|
233 |
-
update_option('mc_form_background','EEF3F8');
|
234 |
-
update_option('mc_form_text_color','555555');
|
235 |
-
|
236 |
-
update_option('mc_show_interest_groups', 'on' );
|
237 |
-
}
|
238 |
-
$mv = $api->listMergeVars($list_id);
|
239 |
-
$ig = $api->listInterestGroups($list_id);
|
240 |
-
|
241 |
-
update_option('mc_merge_vars', serialize( $mv ) );
|
242 |
-
foreach($mv as $var){
|
243 |
-
$opt = 'mc_mv_'.$var['tag'];
|
244 |
-
//turn them all on by default
|
245 |
-
if ($orig_list != $list_id){
|
246 |
-
update_option($opt, 'on' );
|
247 |
-
}
|
248 |
-
}
|
249 |
-
update_option('mc_interest_groups', serialize( $ig ) );
|
250 |
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
}
|
257 |
-
|
258 |
}
|
259 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
delete_option('mc_list_id');
|
261 |
delete_option('mc_list_name');
|
262 |
delete_option('mc_merge_vars');
|
@@ -280,367 +389,585 @@ if (isset($_REQUEST['reset_list'])){
|
|
280 |
delete_option('mc_form_border_color');
|
281 |
delete_option('mc_form_background');
|
282 |
delete_option('mc_form_text_color');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
283 |
|
284 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
}
|
286 |
-
|
287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
update_option('mc_rewards', 'on');
|
289 |
-
|
290 |
-
$msg
|
291 |
} else if (get_option('mc_rewards')!='off') {
|
292 |
update_option('mc_rewards', 'off');
|
293 |
-
|
294 |
-
$msg
|
295 |
}
|
296 |
-
if (isset($
|
297 |
update_option('mc_use_javascript', 'on');
|
298 |
-
|
299 |
-
$msg
|
300 |
} else if (get_option('mc_use_javascript')!='off') {
|
301 |
update_option('mc_use_javascript', 'off');
|
302 |
-
|
303 |
-
$msg
|
304 |
}
|
305 |
|
306 |
-
if (isset($
|
307 |
update_option('mc_use_unsub_link', 'on');
|
308 |
-
|
309 |
-
$msg
|
310 |
} else if (get_option('mc_use_unsub_link')!='off') {
|
311 |
update_option('mc_use_unsub_link', 'off');
|
312 |
-
|
313 |
-
$msg
|
314 |
}
|
315 |
|
316 |
-
$content = stripslashes($
|
317 |
$content = str_replace("\r\n","<br/>", $content);
|
318 |
update_option('mc_header_content', $content );
|
319 |
|
320 |
-
$content = stripslashes($
|
321 |
$content = str_replace("\r\n","<br/>", $content);
|
322 |
update_option('mc_subheader_content', $content );
|
323 |
|
324 |
|
325 |
-
$submit_text = stripslashes($
|
326 |
$submit_text = str_replace("\r\n","", $submit_text);
|
327 |
update_option('mc_submit_text', $submit_text);
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
} else {
|
332 |
-
update_option('mc_custom_style','off');
|
333 |
-
}
|
334 |
|
335 |
//we told them not to put these things we are replacing in, but let's just make sure they are listening...
|
336 |
-
update_option('mc_header_border_width',str_replace('px','',$
|
337 |
-
update_option('mc_header_border_color', str_replace('#','',$
|
338 |
-
update_option('mc_header_background',str_replace('#','',$
|
339 |
-
update_option('mc_header_text_color', str_replace('#','',$
|
340 |
-
|
341 |
-
update_option('mc_form_border_width',str_replace('px','',$
|
342 |
-
update_option('mc_form_border_color', str_replace('#','',$
|
343 |
-
update_option('mc_form_background',str_replace('#','',$
|
344 |
-
update_option('mc_form_text_color', str_replace('#','',$
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
} else {
|
349 |
-
update_option('mc_show_interest_groups','off');
|
350 |
-
}
|
351 |
$mv = get_option('mc_merge_vars');
|
352 |
-
if (
|
353 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
354 |
}
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
361 |
}
|
362 |
}
|
363 |
-
|
364 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
365 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
}
|
367 |
-
|
368 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
369 |
}
|
|
|
370 |
?>
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
<div>
|
376 |
-
<form method="post" action="options-general.php?page=mailchimpSF_setup_page">
|
377 |
-
<h3><?php echo __('Login Info', 'mailchimp_i18n');?></h3>
|
378 |
-
<?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'); ?>
|
379 |
-
<br/>
|
380 |
-
<?php echo __("Don't have a MailChimp account? <a href='http://www.mailchimp.com/signup/' target='_blank'>Try one for Free</a>!", 'mailchimp_i18n'); ?>
|
381 |
-
<br/>
|
382 |
-
<table class="form-table">
|
383 |
-
<tr valign="top">
|
384 |
-
<th scope="row"><?php echo __('API Key', 'mailchimp_i18n');?>:</th>
|
385 |
-
<td><input name="mc_apikey" type="text" id="mc_apikey" class="code" value="<?php echo $apikey; ?>" size="32" /><br/>
|
386 |
-
<a href="http://admin.mailchimp.com/account/api-key-popup" target="_blank">get your API Key here</a>
|
387 |
-
</td>
|
388 |
-
</tr>
|
389 |
-
</table>
|
390 |
-
<input type="hidden" name="action" value="update"/>
|
391 |
-
<input type="hidden" name="page_options" value="mc_apikey" />
|
392 |
-
<input type="submit" name="Submit" value="<?php echo htmlentities(__('Save & Check'),ENT_COMPAT,'UTF-8');?>" class="button" />
|
393 |
-
</form>
|
394 |
-
</div>
|
395 |
-
<?php
|
396 |
-
if (get_option('mc_username')!=''){
|
397 |
-
echo '<strong>'.__('Notes', 'mailchimp_i18n').':</strong><ul>
|
398 |
-
<li><i>'.__('Changing your settings at MailChimp.com may cause this to stop working.', 'mailchimp_i18n').'</i></li>
|
399 |
-
<li><i>'.__('If you change your login to a different account, the info you have setup below will be erased.', 'mailchimp_i18n').'</i></li>
|
400 |
-
<li><i>'.__('If any of that happens, no biggie - just reconfigure your login and the items below...', 'mailchimp_i18n').'</i></li></ul>
|
401 |
-
<br/>';
|
402 |
-
}
|
403 |
-
echo '</p>';
|
404 |
-
} else {
|
405 |
-
?>
|
406 |
-
<table style="min-width:400px;"><tr><td><h3><?php echo __('Logged in as', 'mailchimp_i18n');?>: <?php echo get_option('mc_username')?></h3>
|
407 |
-
</td><td>
|
408 |
-
<form method="post" action="options-general.php?page=mailchimpSF_setup_page">
|
409 |
-
<input type="hidden" name="action" value="logout"/>
|
410 |
-
<input type="submit" name="Submit" value="<?php echo __('Logout', 'mailchimp_i18n');?>" class="button" />
|
411 |
-
</form>
|
412 |
-
</td></tr></table>
|
413 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
414 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
415 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
416 |
<?php
|
|
|
|
|
|
|
|
|
417 |
//Just get out if nothing else matters...
|
418 |
if (get_option('mc_apikey') == '') return;
|
419 |
|
420 |
if (get_option('mc_apikey')!=''){
|
421 |
-
?>
|
422 |
-
|
423 |
-
|
424 |
-
<h3><?php echo __('Your Lists', 'mailchimp_i18n')?></h3>
|
425 |
<div>
|
426 |
-
|
427 |
-
<
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
<
|
452 |
-
<
|
453 |
-
<
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
460 |
</div>
|
|
|
461 |
<br/>
|
|
|
462 |
<?php
|
463 |
-
|
464 |
-
|
465 |
//display the selected list...
|
466 |
?>
|
467 |
|
468 |
-
<?php
|
469 |
-
//wp_nonce_field('update-options'); ?>
|
470 |
<p class="submit">
|
471 |
-
<form method="post" action="options-general.php?page=
|
472 |
-
<input type="hidden" name="
|
473 |
-
<input type="
|
474 |
-
|
475 |
-
</form>
|
476 |
</p>
|
477 |
-
<h3><?php
|
478 |
-
<h4><?php
|
479 |
<?php
|
480 |
}
|
481 |
//Just get out if nothing else matters...
|
482 |
if (get_option('mc_list_id') == '') return;
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
//apparently in WP 2.6 get_option() unserializes arrays for us.
|
487 |
-
$mv = unserialize($mv);
|
488 |
-
$ig = unserialize($ig);
|
489 |
-
}
|
490 |
-
if (!is_array($ig)){
|
491 |
-
//means we got false returned
|
492 |
-
$ig = unserialize($ig);
|
493 |
-
}
|
494 |
?>
|
495 |
|
496 |
<div>
|
497 |
-
<form method="post" action="options-general.php?page=
|
498 |
<div style="width:600px;">
|
499 |
-
<input type="
|
|
|
|
|
500 |
<table class="widefat">
|
501 |
<tr valign="top">
|
502 |
-
<th scope="row"><?php
|
503 |
-
<td><input name="mc_rewards" type="checkbox"
|
504 |
-
<
|
505 |
</td>
|
506 |
</tr>
|
507 |
<tr valign="top">
|
508 |
-
<th scope="row"><?php
|
509 |
-
<td><input name="mc_use_javascript" type="checkbox" <?php
|
510 |
-
<
|
511 |
</td>
|
512 |
</tr>
|
513 |
<tr valign="top">
|
514 |
-
<th scope="row"><?php
|
515 |
-
<td><input name="mc_use_unsub_link" type="checkbox"
|
516 |
-
<
|
517 |
</td>
|
518 |
</tr>
|
519 |
<tr valign="top">
|
520 |
-
<th scope="row"><?php
|
521 |
<td>
|
522 |
-
<textarea name="mc_header_content" rows="2" cols="50"><?php
|
523 |
-
<
|
524 |
</td>
|
525 |
</tr>
|
526 |
|
527 |
<tr valign="top">
|
528 |
-
<th scope="row"><?php
|
529 |
<td>
|
530 |
-
<textarea name="mc_subheader_content" rows="2" cols="50"><?php
|
531 |
-
<
|
532 |
-
<?php
|
533 |
</td>
|
534 |
</tr>
|
535 |
|
536 |
|
537 |
<tr valign="top">
|
538 |
-
<th scope="row"><?php
|
539 |
<td>
|
540 |
-
<input type="text" name="mc_submit_text" size="30" value="<?php
|
541 |
</td>
|
542 |
</tr>
|
543 |
|
544 |
<tr valign="top">
|
545 |
-
<th scope="row"><?php
|
546 |
<td>
|
547 |
<table class="widefat">
|
548 |
|
549 |
-
<tr><th><label for="mc_custom_style"><?php
|
550 |
-
<tr><th colspan="2"><?php
|
551 |
-
<tr><th><?php
|
552 |
-
<
|
553 |
</td></tr>
|
554 |
-
<tr><th><?php
|
555 |
-
<
|
556 |
</td></tr>
|
557 |
-
<tr><th>Text Color:</th><td>#<input type="text" name="mc_header_text_color" size="7" maxlength="6" value="<?php
|
558 |
-
<
|
559 |
</td></tr>
|
560 |
-
<tr><th>Background Color:</th><td>#<input type="text" name="mc_header_background" size="7" maxlength="6" value="<?php
|
561 |
-
<
|
562 |
</td></tr>
|
563 |
|
564 |
-
<tr><th colspan="2"><?php
|
565 |
-
<tr><th><?php
|
566 |
-
<
|
567 |
</td></tr>
|
568 |
-
<tr><th><?php
|
569 |
-
<
|
570 |
</td></tr>
|
571 |
-
<tr><th>Text Color:</th><td>#<input type="text" name="mc_form_text_color" size="7" maxlength="6" value="<?php
|
572 |
-
<
|
573 |
</td></tr>
|
574 |
-
<tr><th>Background Color:</th><td>#<input type="text" name="mc_form_background" size="7" maxlength="6" value="<?php
|
575 |
-
<
|
576 |
</td></tr>
|
577 |
</table>
|
578 |
</td>
|
579 |
</tr>
|
580 |
</table>
|
581 |
</div>
|
582 |
-
<input type="submit"
|
|
|
|
|
|
|
|
|
583 |
<div style="width:400px;">
|
584 |
-
|
|
|
|
|
585 |
<?php
|
586 |
-
|
587 |
-
|
|
|
|
|
|
|
|
|
588 |
} else {
|
589 |
?>
|
590 |
|
591 |
<table class='widefat'>
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
<?php
|
599 |
foreach($mv as $var){
|
600 |
-
|
601 |
-
|
602 |
-
<td
|
603 |
-
<td
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
613 |
}
|
614 |
-
|
|
|
|
|
615 |
}
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
620 |
?>
|
621 |
-
<
|
622 |
-
<tr valign="top">
|
623 |
-
<th width="75px"><label for="mc_show_interest_groups"><?php echo __('Show?', 'mailchimp_i18n');?></label></th><th>
|
624 |
-
<input name="mc_show_interest_groups" id="mc_show_interest_groups" type="checkbox" <?php if (get_option('mc_show_interest_groups')=='on') { echo 'checked="checked"'; } ?> id="mc_show_interest_groups" class="code" />
|
625 |
-
</th></tr>
|
626 |
-
<tr valign="top">
|
627 |
-
<th><?php echo __('Name', 'mailchimp_i18n');?>:</th><th><?php echo $ig['name']; ?></th>
|
628 |
-
</tr>
|
629 |
-
<tr valign="top">
|
630 |
-
<th><?php echo __('Input Type', 'mailchimp_i18n');?>:</th><td><?php echo $ig['form_field']; ?></td>
|
631 |
-
</tr>
|
632 |
-
<tr valign="top">
|
633 |
-
<th><?php echo __('Options', 'mailchimp_i18n');?>:</th><td><ul>
|
634 |
<?php
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
639 |
}
|
640 |
?>
|
641 |
<p class="submit">
|
642 |
-
<input type="
|
643 |
-
<input type="submit" name="change_form_settings" value="<?php echo __('Update Subscribe Form Settings', 'mailchimp_i18n');?>" class="button" />
|
644 |
</p>
|
645 |
</div>
|
646 |
</form>
|
@@ -650,18 +977,183 @@ if (!$ig || $ig=='' || $ig=='N'){
|
|
650 |
}//mailchimpSF_setup_page()
|
651 |
|
652 |
|
653 |
-
|
654 |
-
|
|
|
|
|
655 |
|
656 |
-
|
657 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
658 |
}
|
659 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
660 |
}
|
661 |
|
662 |
-
|
663 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
664 |
}
|
665 |
-
|
666 |
|
667 |
?>
|
2 |
/*
|
3 |
Plugin Name: MailChimp
|
4 |
Plugin URI: http://www.mailchimp.com/plugins/mailchimp-wordpress-plugin/
|
5 |
+
Description: The MailChimp plugin allows you to quickly and easily add a signup form for your MailChimp list.
|
6 |
+
Version: 1.2
|
7 |
+
Author: MailChimp and Crowd Favorite
|
8 |
Author URI: http://mailchimp.com/api/
|
9 |
*/
|
|
|
10 |
/* Copyright 2008 MailChimp.com (email : api@mailchimp.com)
|
11 |
|
12 |
This program is free software; you can redistribute it and/or modify
|
23 |
along with this program; if not, write to the Free Software
|
24 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
25 |
*/
|
26 |
+
|
27 |
+
// Version constant for easy CSS refreshes
|
28 |
+
define('MCSF_VER', '1.2');
|
29 |
+
|
30 |
+
// What's our permission (capability) threshold
|
31 |
+
define('MCSF_CAP_THRESHOLD', 'edit_plugins');
|
32 |
+
|
33 |
+
// Define our location constants, both MCSF_DIR and MCSF_URL
|
34 |
+
mailchimpSF_where_am_i();
|
35 |
+
|
36 |
+
// Get our MailChimp API class in scope
|
37 |
if (!class_exists('MCAPI')) {
|
38 |
+
require_once('MCAPI.class.php');
|
39 |
}
|
40 |
+
|
41 |
// includes the widget code so it can be easily called either normally or via ajax
|
42 |
+
include_once('mailchimp_widget.php');
|
43 |
+
|
44 |
+
// includes the backwards compatibility functions
|
45 |
+
include_once('mailchimp_compat.php');
|
46 |
+
|
47 |
+
|
48 |
+
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Do the following plugin setup steps here
|
52 |
+
*
|
53 |
+
* Internationalization
|
54 |
+
* Resource (JS & CSS) enqueuing
|
55 |
+
*
|
56 |
+
* @return void
|
57 |
+
*/
|
58 |
+
function mailchimpSF_plugin_init() {
|
59 |
+
// Internationalize the plugin
|
60 |
+
load_plugin_textdomain( 'mailchimp_i18n', MCSF_DIR.'po/');
|
61 |
+
|
62 |
+
// Bring in our appropriate JS and CSS resources
|
63 |
+
mailchimpSF_load_resources();
|
64 |
}
|
65 |
+
add_action( 'init', 'mailchimpSF_plugin_init' );
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Loads the appropriate JS and CSS resources depending on
|
69 |
+
* settings and context (admin or not)
|
70 |
+
*
|
71 |
+
* @return void
|
72 |
+
*/
|
73 |
+
function mailchimpSF_load_resources() {
|
74 |
+
// JS
|
75 |
+
if (get_option('mc_use_javascript') == 'on') {
|
76 |
+
if (!is_admin()) {
|
77 |
+
wp_enqueue_script('mailchimpSF_main_js', MCSF_URL.'js/mailchimp.js', array('jquery', 'jquery-form'), MCSF_VER);
|
78 |
+
// some javascript to get ajax version submitting to the proper location
|
79 |
+
global $wp_scripts;
|
80 |
+
$wp_scripts->localize('mailchimpSF_main_js', 'mailchimpSF', array(
|
81 |
+
'ajax_url' => trailingslashit(home_url()),
|
82 |
+
));
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
// CSS
|
87 |
+
if (is_admin() && $_GET['page'] == 'mailchimpSF_options') {
|
88 |
+
wp_enqueue_style('mailchimpSF_admin_css', MCSF_URL.'css/admin.css');
|
89 |
+
}
|
90 |
+
else {
|
91 |
+
wp_enqueue_style('mailchimpSF_main_css', home_url('?mcsf_action=main_css&ver='.MCSF_VER));
|
92 |
+
wp_enqueue_style('mailchimpSF_ie_css', MCSF_URL.'css/ie.css');
|
93 |
+
global $wp_styles;
|
94 |
+
$wp_styles->add_data( 'mailchimpSF_ie_css', 'conditional', 'IE' );
|
95 |
+
}
|
96 |
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Handles requests that as light-weight a load as possible.
|
100 |
+
* typically, JS or CSS
|
101 |
+
**/
|
102 |
+
function mailchimpSF_early_request_handler() {
|
103 |
+
if (isset($_GET['mcsf_action'])) {
|
104 |
+
switch ($_GET['mcsf_action']) {
|
105 |
+
case 'main_css':
|
106 |
+
header("Content-type: text/css");
|
107 |
+
mailchimpSF_main_css();
|
108 |
+
exit;
|
109 |
+
}
|
110 |
+
}
|
111 |
}
|
112 |
+
add_action('init', 'mailchimpSF_early_request_handler', 0);
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Outputs the front-end CSS. This checks several options, so it
|
116 |
+
* was best to put it in a Request-handled script, as opposed to
|
117 |
+
* a static file.
|
118 |
+
*/
|
119 |
+
function mailchimpSF_main_css() {
|
120 |
+
?>
|
121 |
+
.mc_error_msg {
|
122 |
+
color: red;
|
123 |
+
}
|
124 |
+
.mc_success_msg {
|
125 |
+
color: green;
|
126 |
+
}
|
127 |
+
.mc_merge_var{
|
128 |
+
padding:0;
|
129 |
+
margin:0;
|
130 |
+
}
|
131 |
+
<?php
|
132 |
+
// If we're utilizing custom styles
|
133 |
if (get_option('mc_custom_style')=='on'){
|
134 |
+
?>
|
135 |
+
#mc_signup_form {
|
136 |
+
padding:5px;
|
137 |
+
border-width: <?php echo get_option('mc_form_border_width'); ?>px;
|
138 |
+
border-style: <?php echo (get_option('mc_form_border_width')==0) ? 'none' : 'solid'; ?>;
|
139 |
+
border-color: #<?php echo get_option('mc_form_border_color'); ?>;
|
140 |
+
color: #<?php echo get_option('mc_form_text_color'); ?>;
|
141 |
+
background-color: #<?php echo get_option('mc_form_background'); ?>;
|
142 |
+
}
|
143 |
+
|
144 |
+
|
145 |
+
.mc_custom_border_hdr {
|
146 |
+
border-width: <?php echo get_option('mc_header_border_width'); ?>px;
|
147 |
+
border-style: <?php echo (get_option('mc_header_border_width')==0) ? 'none' : 'solid'; ?>;
|
148 |
+
border-color: #<?php echo get_option('mc_header_border_color'); ?>;
|
149 |
+
color: #<?php echo get_option('mc_header_text_color'); ?>;
|
150 |
+
background-color: #<?php echo get_option('mc_header_background'); ?>;
|
151 |
+
font-size: 1.2em;
|
152 |
+
padding:5px 10px;
|
153 |
+
width: 100%;
|
154 |
+
}
|
155 |
+
<?php
|
156 |
}
|
157 |
+
?>
|
158 |
+
#mc_signup_container {}
|
159 |
+
#mc_signup_form {}
|
160 |
+
#mc_signup_form .mc_var_label {}
|
161 |
+
#mc_signup_form .mc_input {}
|
162 |
+
#mc-indicates-required {
|
163 |
+
width:100%;
|
164 |
+
}
|
165 |
+
#mc_display_rewards {}
|
166 |
+
#mc_interests_header {
|
167 |
+
font-weight:bold;
|
168 |
+
}
|
169 |
+
div.mc_interest{
|
170 |
+
width:100%;
|
171 |
+
}
|
172 |
+
#mc_signup_form input.mc_interest {}
|
173 |
+
#mc_signup_form select {}
|
174 |
+
#mc_signup_form label.mc_interest_label {
|
175 |
+
display:inline;
|
176 |
+
}
|
177 |
+
.mc_signup_submit {
|
178 |
+
text-align:center;
|
179 |
+
}
|
180 |
+
<?php
|
|
|
|
|
|
|
181 |
}
|
182 |
|
183 |
|
184 |
+
/**
|
185 |
+
* Add our settings page to the admin menu
|
186 |
+
*
|
187 |
+
* @return void
|
188 |
+
*/
|
189 |
+
function mailchimpSF_add_pages(){
|
190 |
+
// Add settings page for users who can edit plugins
|
191 |
+
add_options_page( __( 'MailChimp Setup', 'mailchimp_i18n' ), __( 'MailChimp Setup', 'mailchimp_i18n' ), MCSF_CAP_THRESHOLD, 'mailchimpSF_options', 'mailchimpSF_setup_page');
|
192 |
+
}
|
|
|
193 |
add_action('admin_menu', 'mailchimpSF_add_pages');
|
194 |
|
195 |
+
function mailchimpSF_request_handler() {
|
196 |
+
if (isset($_POST['mcsf_action'])) {
|
197 |
+
switch ($_POST['mcsf_action']) {
|
198 |
+
case 'logout':
|
199 |
+
// Check capability & Verify nonce
|
200 |
+
if (!current_user_can(MCSF_CAP_THRESHOLD) || !wp_verify_nonce($_POST['_mcsf_nonce_action'], 'mc_logout')) {
|
201 |
+
wp_die('Cheatin’ huh?');
|
202 |
+
}
|
|
|
203 |
|
204 |
+
// erase API Key
|
205 |
+
update_option('mc_apikey', '');
|
206 |
+
break;
|
207 |
+
case 'update_mc_apikey':
|
208 |
+
// Check capability & Verify nonce
|
209 |
+
if (!current_user_can(MCSF_CAP_THRESHOLD) || !wp_verify_nonce($_POST['_mcsf_nonce_action'], 'update_mc_api_key')) {
|
210 |
+
wp_die('Cheatin’ huh?');
|
211 |
+
}
|
212 |
+
|
213 |
+
mailchimpSF_set_api_key(strip_tags(stripslashes($_POST['mc_apikey'])));
|
214 |
+
break;
|
215 |
+
case 'reset_list':
|
216 |
+
// Check capability & Verify nonce
|
217 |
+
if (!current_user_can(MCSF_CAP_THRESHOLD) || !wp_verify_nonce($_POST['_mcsf_nonce_action'], 'reset_mailchimp_list')) {
|
218 |
+
wp_die('Cheatin’ huh?');
|
219 |
+
}
|
220 |
+
|
221 |
+
mailchimpSF_reset_list_settings();
|
222 |
+
break;
|
223 |
+
case 'change_form_settings':
|
224 |
+
if (!current_user_can(MCSF_CAP_THRESHOLD) || !wp_verify_nonce($_POST['_mcsf_nonce_action'], 'update_general_form_settings')) {
|
225 |
+
wp_die('Cheatin’ huh?');
|
226 |
+
}
|
227 |
+
|
228 |
+
// Update the form settings
|
229 |
+
mailchimpSF_save_general_form_settings();
|
230 |
+
break;
|
231 |
+
case 'mc_submit_signup_form':
|
232 |
+
// Validate nonce
|
233 |
+
if (!wp_verify_nonce($_POST['_mc_submit_signup_form_nonce'], 'mc_submit_signup_form')) {
|
234 |
+
wp_die('Cheatin’ huh?');
|
235 |
+
}
|
236 |
+
|
237 |
+
// Attempt the signup
|
238 |
+
mailchimpSF_signup_submit();
|
239 |
+
|
240 |
+
// Do a different action for html vs. js
|
241 |
+
switch ($_POST['mc_submit_type']) {
|
242 |
+
case 'html':
|
243 |
+
/* Allow to fall through. The widget will pick up the
|
244 |
+
* global message left over from the signup_submit function */
|
245 |
+
break;
|
246 |
+
case 'js':
|
247 |
+
if (!headers_sent()){ //just in case...
|
248 |
+
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT', true, 200);
|
249 |
+
}
|
250 |
+
echo mailchimpSF_global_msg(); // Don't esc_html this, b/c we've already escaped it
|
251 |
+
exit;
|
252 |
+
}
|
253 |
+
}
|
254 |
+
}
|
255 |
}
|
256 |
+
add_action('init', 'mailchimpSF_request_handler');
|
257 |
+
|
258 |
|
|
|
259 |
|
260 |
+
/**
|
261 |
+
* Checks to see if we're storing a password, if so, we need
|
262 |
+
* to upgrade to the API key
|
263 |
+
*
|
264 |
+
* @return bool
|
265 |
+
**/
|
266 |
+
function mailchimpSF_needs_upgrade() {
|
267 |
+
$pass = get_option('mc_password');
|
268 |
+
return !empty($pass);
|
269 |
+
}
|
270 |
+
|
271 |
+
/**
|
272 |
+
* If we have a password, then we need to get our API key, store
|
273 |
+
* it and the username, then delete the password
|
274 |
+
*/
|
275 |
+
function mailchimpSF_do_upgrade() {
|
276 |
//some upgrade code for < 0.5 users - we want to rip out the password we've been saving.
|
277 |
$api = new MCAPI(get_option('mc_username'), get_option('mc_password'));
|
278 |
+
if (empty($api->errorCode)) {
|
279 |
update_option('mc_apikey', $api->api_key);
|
280 |
//this should already be here, but let's make sure anyway
|
281 |
$req = $api->getAffiliateInfo();
|
282 |
update_option('mc_user_id', $req['user_id']);
|
283 |
} else {
|
284 |
+
$msg = "<p class='error_msg'>".esc_html(__( "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' ))."</p>";
|
285 |
+
mailchimpSF_global_msg($msg);
|
286 |
}
|
287 |
delete_option('mc_password');
|
288 |
}
|
289 |
+
|
290 |
+
/**
|
291 |
+
* Sets the API Key to whatever value was passed to this func
|
292 |
+
*
|
293 |
+
* @return array of vars
|
294 |
+
**/
|
295 |
+
function mailchimpSF_set_api_key($api_key = '') {
|
|
|
|
|
296 |
$delete_setup = false;
|
297 |
+
$api = new MCAPI($api_key);
|
298 |
$api->ping();
|
299 |
+
if (empty($api->errorCode)) {
|
300 |
+
$msg = "<p class='success_msg'>".esc_html(__("Success! We were able to verify your API Key! Let's continue, shall we?", 'mailchimp_i18n'))."</p>";
|
301 |
+
update_option('mc_apikey', $api_key);
|
302 |
$req = $api->getAccountDetails();
|
303 |
update_option('mc_username', $req['username']);
|
304 |
update_option('mc_user_id', $req['user_id']);
|
305 |
+
$cur_list_id = get_option('mc_list_id');
|
306 |
+
if (!empty($cur_list_id)) {
|
307 |
$lists = $api->lists();
|
308 |
//but don't delete if the list still exists...
|
309 |
$delete_setup = true;
|
310 |
+
foreach($lists as $list) {
|
311 |
+
if ($list['id'] == $cur_list_id) {
|
312 |
+
$list_id = $_POST['mc_list_id'];
|
313 |
+
$delete_setup = false;
|
314 |
+
}
|
315 |
+
}
|
316 |
}
|
317 |
} else {
|
318 |
+
$msg = "<p class='error_msg'>".esc_html(__('Uh-oh, we were unable to verify your API Key. Please check them and try again!', 'mailchimp_i18n'))."<br/>";
|
319 |
+
$msg .= __('The server said:', 'mailchimp_i18n')."<em>".esc_html($api->errorMessage)."</em></p>";
|
320 |
+
$username = get_option('mc_username');
|
321 |
+
if (empty($username)) {
|
322 |
$delete_setup = true;
|
323 |
}
|
324 |
}
|
325 |
+
|
326 |
+
// Set a global message
|
327 |
+
mailchimpSF_global_msg($msg);
|
328 |
+
|
329 |
+
// If we need to delete our setup, do it
|
330 |
if ($delete_setup){
|
331 |
+
mailchimpSF_delete_setup();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 |
}
|
333 |
+
|
334 |
//set these for the form fields below
|
335 |
$user = $_REQUEST['mc_username'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
336 |
|
337 |
+
// return compact('user', 'delete_setup', 'list_id')
|
338 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
339 |
|
340 |
+
/**
|
341 |
+
* Deletes all mailchimp options
|
342 |
+
**/
|
343 |
+
function mailchimpSF_delete_setup() {
|
344 |
+
delete_option('mc_user_id');
|
345 |
+
delete_option('mc_rewards');
|
346 |
+
delete_option('mc_use_javascript');
|
347 |
+
delete_option('mc_use_unsub_link');
|
348 |
+
delete_option('mc_list_id');
|
349 |
+
delete_option('mc_list_name');
|
350 |
+
delete_option('mc_interest_groups');
|
351 |
+
delete_option('mc_show_interest_groups');
|
352 |
+
$mv = get_option('mc_merge_vars');
|
353 |
+
if (is_array($mv)){
|
354 |
+
foreach($mv as $var){
|
355 |
+
$opt = 'mc_mv_'.$var['tag'];
|
356 |
+
delete_option($opt);
|
357 |
+
}
|
358 |
}
|
359 |
+
delete_option('mc_merge_vars');
|
360 |
}
|
361 |
+
|
362 |
+
/**
|
363 |
+
* Resets the list settings, there's only one list
|
364 |
+
* that can have settings at a time, so no list_id
|
365 |
+
* parameter is necessary.
|
366 |
+
**/
|
367 |
+
function mailchimpSF_reset_list_settings() {
|
368 |
+
|
369 |
delete_option('mc_list_id');
|
370 |
delete_option('mc_list_name');
|
371 |
delete_option('mc_merge_vars');
|
389 |
delete_option('mc_form_border_color');
|
390 |
delete_option('mc_form_background');
|
391 |
delete_option('mc_form_text_color');
|
392 |
+
|
393 |
+
$msg = '<p class="success_msg">'.esc_html(__('Successfully Reset your List selection... Now you get to pick again!', 'mailchimp_i18n')).'</p>';
|
394 |
+
mailchimpSF_global_msg($msg);
|
395 |
+
}
|
396 |
+
|
397 |
+
/**
|
398 |
+
* Gets or sets a global message based on parameter passed to it
|
399 |
+
*
|
400 |
+
* @return string/bool depending on get/set
|
401 |
+
**/
|
402 |
+
function mailchimpSF_global_msg($msg = null) {
|
403 |
+
global $mcsf_msgs;
|
404 |
+
|
405 |
+
// Make sure we're formed properly
|
406 |
+
if (!is_array($mcsf_msgs)) {
|
407 |
+
$mcsf_msgs = array();
|
408 |
+
}
|
409 |
+
|
410 |
+
// See if we're getting
|
411 |
+
if (is_null($msg)) {
|
412 |
+
return implode('', $mcsf_msgs);
|
413 |
+
}
|
414 |
+
|
415 |
+
// Must be setting
|
416 |
+
$mcsf_msgs[] = $msg;
|
417 |
+
return true;
|
418 |
+
}
|
419 |
|
420 |
+
/**
|
421 |
+
* Sets the default options for the option form
|
422 |
+
**/
|
423 |
+
function mailchimpSF_set_form_defaults($list_name = '') {
|
424 |
+
update_option('mc_header_content',__( 'Sign up for', 'mailchimp_i18n' ).' '.$list_name);
|
425 |
+
update_option('mc_submit_text',__( 'Subscribe', 'mailchimp_i18n' ));
|
426 |
+
|
427 |
+
update_option('mc_custom_style','on');
|
428 |
+
update_option('mc_use_javascript','on');
|
429 |
+
update_option('mc_use_unsub_link','off');
|
430 |
+
update_option('mc_header_border_width','1');
|
431 |
+
update_option('mc_header_border_color','E3E3E3');
|
432 |
+
update_option('mc_header_background','FFFFFF');
|
433 |
+
update_option('mc_header_text_color','CC6600');
|
434 |
+
|
435 |
+
update_option('mc_form_border_width','1');
|
436 |
+
update_option('mc_form_border_color','C4D3EA');
|
437 |
+
update_option('mc_form_background','EEF3F8');
|
438 |
+
update_option('mc_form_text_color','555555');
|
439 |
+
|
440 |
+
update_option('mc_show_interest_groups', 'on' );
|
441 |
}
|
442 |
+
|
443 |
+
/**
|
444 |
+
* Saves the General Form settings on the options page
|
445 |
+
*
|
446 |
+
* @return void
|
447 |
+
**/
|
448 |
+
function mailchimpSF_save_general_form_settings() {
|
449 |
+
if (isset($_POST['mc_rewards'])){
|
450 |
update_option('mc_rewards', 'on');
|
451 |
+
$msg = '<p class="success_msg">'.__('Monkey Rewards turned On!', 'mailchimp_i18n').'</p>';
|
452 |
+
mailchimpSF_global_msg($msg);
|
453 |
} else if (get_option('mc_rewards')!='off') {
|
454 |
update_option('mc_rewards', 'off');
|
455 |
+
$msg = '<p class="success_msg">'.__('Monkey Rewards turned Off!', 'mailchimp_i18n').'</p>';
|
456 |
+
mailchimpSF_global_msg($msg);
|
457 |
}
|
458 |
+
if (isset($_POST['mc_use_javascript'])){
|
459 |
update_option('mc_use_javascript', 'on');
|
460 |
+
$msg = '<p class="success_msg">'.__('Fancy Javascript submission turned On!', 'mailchimp_i18n').'</p>';
|
461 |
+
mailchimpSF_global_msg($msg);
|
462 |
} else if (get_option('mc_use_javascript')!='off') {
|
463 |
update_option('mc_use_javascript', 'off');
|
464 |
+
$msg = '<p class="success_msg">'.__('Fancy Javascript submission turned Off!', 'mailchimp_i18n').'</p>';
|
465 |
+
mailchimpSF_global_msg($msg);
|
466 |
}
|
467 |
|
468 |
+
if (isset($_POST['mc_use_unsub_link'])){
|
469 |
update_option('mc_use_unsub_link', 'on');
|
470 |
+
$msg = '<p class="success_msg">'.__('Unsubscribe link turned On!', 'mailchimp_i18n').'</p>';
|
471 |
+
mailchimpSF_global_msg($msg);
|
472 |
} else if (get_option('mc_use_unsub_link')!='off') {
|
473 |
update_option('mc_use_unsub_link', 'off');
|
474 |
+
$msg = '<p class="success_msg">'.__('Unsubscribe link turned Off!', 'mailchimp_i18n').'</p>';
|
475 |
+
mailchimpSF_global_msg($msg);
|
476 |
}
|
477 |
|
478 |
+
$content = stripslashes($_POST['mc_header_content']);
|
479 |
$content = str_replace("\r\n","<br/>", $content);
|
480 |
update_option('mc_header_content', $content );
|
481 |
|
482 |
+
$content = stripslashes($_POST['mc_subheader_content']);
|
483 |
$content = str_replace("\r\n","<br/>", $content);
|
484 |
update_option('mc_subheader_content', $content );
|
485 |
|
486 |
|
487 |
+
$submit_text = stripslashes($_POST['mc_submit_text']);
|
488 |
$submit_text = str_replace("\r\n","", $submit_text);
|
489 |
update_option('mc_submit_text', $submit_text);
|
490 |
+
|
491 |
+
// Set Custom Style option
|
492 |
+
update_option('mc_custom_style', (isset($_POST['mc_custom_style'])) ? 'on' : 'off');
|
|
|
|
|
|
|
493 |
|
494 |
//we told them not to put these things we are replacing in, but let's just make sure they are listening...
|
495 |
+
update_option('mc_header_border_width',str_replace('px','',$_POST['mc_header_border_width']) );
|
496 |
+
update_option('mc_header_border_color', str_replace('#','',$_POST['mc_header_border_color']));
|
497 |
+
update_option('mc_header_background',str_replace('#','',$_POST['mc_header_background']));
|
498 |
+
update_option('mc_header_text_color', str_replace('#','',$_POST['mc_header_text_color']));
|
499 |
+
|
500 |
+
update_option('mc_form_border_width',str_replace('px','',$_POST['mc_form_border_width']) );
|
501 |
+
update_option('mc_form_border_color', str_replace('#','',$_POST['mc_form_border_color']));
|
502 |
+
update_option('mc_form_background',str_replace('#','',$_POST['mc_form_background']));
|
503 |
+
update_option('mc_form_text_color', str_replace('#','',$_POST['mc_form_text_color']));
|
504 |
+
|
505 |
+
update_option('mc_show_interest_groups', (isset($_POST['mc_show_interest_groups'])) ? 'on' : 'off');
|
506 |
+
|
|
|
|
|
|
|
507 |
$mv = get_option('mc_merge_vars');
|
508 |
+
if (is_array($mv)) {
|
509 |
+
foreach($mv as $var){
|
510 |
+
$opt = 'mc_mv_'.$var['tag'];
|
511 |
+
if (isset($_POST[$opt]) || $var['req']=='Y'){
|
512 |
+
update_option($opt,'on');
|
513 |
+
} else {
|
514 |
+
update_option($opt,'off');
|
515 |
+
}
|
516 |
+
}
|
517 |
}
|
518 |
+
$msg = '<p class="success_msg">'.esc_html(__('Successfully Updated your List Subscribe Form Settings!', 'mailchimp_i18n')).'</p>';
|
519 |
+
mailchimpSF_global_msg($msg);
|
520 |
+
}
|
521 |
+
|
522 |
+
/**
|
523 |
+
* Sees if the user changed the list, and updates options accordingly
|
524 |
+
**/
|
525 |
+
function mailchimpSF_change_list_if_necessary($api_key) {
|
526 |
+
// Simple permission check before going through all this
|
527 |
+
if (!current_user_can(MCSF_CAP_THRESHOLD)) { return; }
|
528 |
+
|
529 |
+
$api = new MCAPI($api_key);
|
530 |
+
$lists = (array)$api->lists();
|
531 |
+
|
532 |
+
/* If our incoming list ID (the one chosen in the select dropdown)
|
533 |
+
is in our array of lists, the set it to be the active list */
|
534 |
+
foreach($lists as $list) {
|
535 |
+
if ($list['id'] == $_POST['mc_list_id']) {
|
536 |
+
$list_id = $_POST['mc_list_id'];
|
537 |
+
$list_name = $list['name'];
|
538 |
}
|
539 |
}
|
540 |
+
|
541 |
+
$orig_list = get_option('mc_list_id');
|
542 |
+
if ($list_id != '') {
|
543 |
+
update_option('mc_list_id', $list_id);
|
544 |
+
update_option('mc_list_name', $list_name);
|
545 |
+
|
546 |
+
// See if the user changed the list
|
547 |
+
if ($orig_list != $list_id){
|
548 |
+
// The user changed the list, Reset the Form Defaults
|
549 |
+
mailchimpSF_set_form_defaults($list_name);
|
550 |
+
}
|
551 |
+
|
552 |
+
// Grab the merge vars and interest groups
|
553 |
+
$mv = $api->listMergeVars($list_id);
|
554 |
+
$ig = $api->listInterestGroups($list_id);
|
555 |
|
556 |
+
update_option('mc_merge_vars', $mv);
|
557 |
+
foreach($mv as $var){
|
558 |
+
$opt = 'mc_mv_'.$var['tag'];
|
559 |
+
//turn them all on by default
|
560 |
+
if ($orig_list != $list_id){
|
561 |
+
update_option($opt, 'on' );
|
562 |
+
}
|
563 |
+
}
|
564 |
+
update_option('mc_interest_groups', $ig);
|
565 |
+
|
566 |
+
$msg = '<p class="success_msg">'.
|
567 |
+
sprintf(
|
568 |
+
__( 'Success! Loaded and saved the info for %d Merge Variables and %d Interest Groups from your list'),
|
569 |
+
count($mv),
|
570 |
+
count($ig)
|
571 |
+
).
|
572 |
+
' "'.$list_name.'"<br/><br/>'.
|
573 |
+
__('Now you should either Turn On the MailChimp Widget or change your options below, then turn it on.', 'mailchimp_i18n').'</p>';
|
574 |
+
mailchimpSF_global_msg($msg);
|
575 |
+
}
|
576 |
}
|
577 |
+
|
578 |
+
/**
|
579 |
+
* Outputs the Settings/Options page
|
580 |
+
*/
|
581 |
+
function mailchimpSF_setup_page() {
|
582 |
+
|
583 |
+
// See if we need an upgrade
|
584 |
+
if (mailchimpSF_needs_upgrade()) {
|
585 |
+
// remove password option if it's set
|
586 |
+
mailchimpSF_do_upgrade();
|
587 |
}
|
588 |
+
|
589 |
?>
|
590 |
+
<div class="wrap">
|
591 |
+
|
592 |
+
<h2><?php esc_html_e(__( 'MailChimp List Setup', 'mailchimp_i18n'));?> </h2>
|
593 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
594 |
<?php
|
595 |
+
|
596 |
+
$user = get_option('mc_username');
|
597 |
+
$api_key = get_option('mc_apikey');
|
598 |
+
|
599 |
+
// If we have an API Key, see if we need to change the lists and its options
|
600 |
+
if (!empty($api_key)){
|
601 |
+
mailchimpSF_change_list_if_necessary($api_key);
|
602 |
}
|
603 |
+
|
604 |
+
|
605 |
+
|
606 |
+
// Display our success/error message(s) if have them
|
607 |
+
if (mailchimpSF_global_msg() != ''){
|
608 |
+
// Message has already been html escaped, so we don't want to 2x escape it here
|
609 |
+
?>
|
610 |
+
<div id="mc_message" class=""><?php echo mailchimpSF_global_msg(); ?></div>
|
611 |
+
<?php
|
612 |
+
}
|
613 |
+
|
614 |
+
|
615 |
+
// If we don't have an API Key, do a login form
|
616 |
+
if (get_option('mc_apikey') == '') {
|
617 |
+
?>
|
618 |
+
<div>
|
619 |
+
<form method="post" action="options-general.php?page=mailchimpSF_options">
|
620 |
+
<h3><?php esc_html_e(__('Login Info', 'mailchimp_i18n'));?></h3>
|
621 |
+
<?php esc_html_e(__('To start using the MailChimp plugin, we first need to login and get your API Key. Please enter your MailChimp API Key below.', 'mailchimp_i18n')); ?>
|
622 |
+
|
623 |
+
<br/>
|
624 |
+
|
625 |
+
<?php
|
626 |
+
echo sprintf(
|
627 |
+
'%1$s <a href="http://www.mailchimp.com/signup/" target="_blank">%2$s</a>',
|
628 |
+
esc_html(__("Don't have a MailChimp account?", 'mailchimp_i18n')),
|
629 |
+
esc_html(__('Try one for Free!', 'mailchimp_i18n'))
|
630 |
+
);
|
631 |
+
?>
|
632 |
+
|
633 |
+
<br/>
|
634 |
+
|
635 |
+
<table class="form-table">
|
636 |
+
<tr valign="top">
|
637 |
+
<th scope="row"><?php esc_html_e(__('API Key', 'mailchimp_i18n')); ?>:</th>
|
638 |
+
<td>
|
639 |
+
<input name="mc_apikey" type="text" id="mc_apikey" class="code" value="<?php esc_attr_e($apikey); ?>" size="32" />
|
640 |
+
<br/>
|
641 |
+
<a href="http://admin.mailchimp.com/account/api-key-popup" target="_blank">get your API Key here</a>
|
642 |
+
</td>
|
643 |
+
</tr>
|
644 |
+
</table>
|
645 |
+
|
646 |
+
<input type="hidden" name="mcsf_action" value="update_mc_apikey"/>
|
647 |
+
<input type="submit" name="Submit" value="<?php esc_attr_e(__('Save & Check'));?>" class="button" />
|
648 |
+
<?php wp_nonce_field('update_mc_api_key', '_mcsf_nonce_action'); ?>
|
649 |
+
</form>
|
650 |
+
</div>
|
651 |
+
|
652 |
+
<?php
|
653 |
+
if (get_option('mc_username')!=''){
|
654 |
+
?>
|
655 |
+
<strong><?php esc_html_e(__('Notes', 'mailchimp_i18n')); ?>:</strong>
|
656 |
+
<ul>
|
657 |
+
<li><em><?php esc_html_e(__('Changing your settings at MailChimp.com may cause this to stop working.', 'mailchimp_i18n')); ?></em></li>
|
658 |
+
<li><em><?php esc_html_e(__('If you change your login to a different account, the info you have setup below will be erased.', 'mailchimp_i18n')); ?></em></li>
|
659 |
+
<li><em><?php esc_html_e(__('If any of that happens, no biggie - just reconfigure your login and the items below...', 'mailchimp_i18n')); ?></em></li>
|
660 |
+
</ul>
|
661 |
+
<br/>
|
662 |
+
<?php
|
663 |
+
}
|
664 |
+
} // End of login form
|
665 |
+
|
666 |
+
// Start logout form
|
667 |
+
else {
|
668 |
?>
|
669 |
+
<table style="min-width:400px;">
|
670 |
+
<tr>
|
671 |
+
<td><h3><?php esc_html_e(__('Logged in as', 'mailchimp_i18n'));?>: <?php esc_html_e(get_option('mc_username')); ?></h3>
|
672 |
+
</td>
|
673 |
+
<td>
|
674 |
+
<form method="post" action="options-general.php?page=mailchimpSF_options">
|
675 |
+
<input type="hidden" name="mcsf_action" value="logout"/>
|
676 |
+
<input type="submit" name="Submit" value="<?php esc_attr_e(__('Logout', 'mailchimp_i18n'));?>" class="button" />
|
677 |
+
<?php wp_nonce_field('mc_logout', '_mcsf_nonce_action'); ?>
|
678 |
+
</form>
|
679 |
+
</td>
|
680 |
+
</tr>
|
681 |
+
</table>
|
682 |
<?php
|
683 |
+
} // End Logout form
|
684 |
+
|
685 |
+
|
686 |
+
|
687 |
//Just get out if nothing else matters...
|
688 |
if (get_option('mc_apikey') == '') return;
|
689 |
|
690 |
if (get_option('mc_apikey')!=''){
|
691 |
+
?>
|
692 |
+
<h3><?php esc_html_e(__('Your Lists', 'mailchimp_i18n')); ?></h3>
|
693 |
+
|
|
|
694 |
<div>
|
695 |
+
|
696 |
+
<p><?php esc_html_e(__('Please select the List you wish to create a Signup Form for.', 'mailchimp_i18n')); ?></p>
|
697 |
+
|
698 |
+
<form method="post" action="options-general.php?page=mailchimpSF_options">
|
699 |
+
<?php
|
700 |
+
$GLOBALS["mc_api_key"] = get_option('mc_apikey');
|
701 |
+
$api = new MCAPI('no_login','is_needed');
|
702 |
+
$lists = (array)$api->lists();
|
703 |
+
rsort($lists);
|
704 |
+
if (count($lists) == 0) {
|
705 |
+
?>
|
706 |
+
<span class='error_msg'>
|
707 |
+
<?php
|
708 |
+
echo sprintf(
|
709 |
+
esc_html(__("Uh-oh, you don't have any lists defined! Please visit %s, login, and setup a list before using this tool!", 'mailchimp_i18n')),
|
710 |
+
"<a href='http://www.mailchimp.com/'>MailChimp</a>"
|
711 |
+
);
|
712 |
+
?>
|
713 |
+
</span>
|
714 |
+
<?php
|
715 |
+
}
|
716 |
+
else {
|
717 |
+
?>
|
718 |
+
<table style="min-width:400px">
|
719 |
+
<tr>
|
720 |
+
<td>
|
721 |
+
<select name="mc_list_id" style="min-width:200px;">
|
722 |
+
<option value=""> — <?php esc_html_e(__('Select A List','mailchimp_i18n')); ?> — </option>
|
723 |
+
<?php
|
724 |
+
foreach ($lists as $list) {
|
725 |
+
$option = get_option('mc_list_id');
|
726 |
+
?>
|
727 |
+
<option value="<?php esc_attr_e($list['id']); ?>"<?php selected($list['id'], $option); ?>><?php esc_html_e($list['name']); ?></option>
|
728 |
+
<?php
|
729 |
+
}
|
730 |
+
?>
|
731 |
+
</select>
|
732 |
+
</td>
|
733 |
+
<td>
|
734 |
+
<input type="hidden" name="mcsf_action" value="update_mc_list_id" />
|
735 |
+
<input type="submit" name="Submit" value="<?php esc_attr_e(__('Update List', 'mailchimp_i18n')); ?>" class="button" />
|
736 |
+
</td>
|
737 |
+
</tr>
|
738 |
+
<tr>
|
739 |
+
<td colspan="2">
|
740 |
+
<strong><?php esc_html_e(__('Note:', 'mailchimp_i18n')); ?></strong> <em><?php esc_html_e(__('Updating your list will not cause settings below to be lost. Changing to a new list will.', 'mailchimp_i18n')); ?></em>
|
741 |
+
</td>
|
742 |
+
</tr>
|
743 |
+
</table>
|
744 |
+
<?php
|
745 |
+
} //end select list
|
746 |
+
?>
|
747 |
+
</form>
|
748 |
</div>
|
749 |
+
|
750 |
<br/>
|
751 |
+
|
752 |
<?php
|
753 |
+
}
|
754 |
+
else {
|
755 |
//display the selected list...
|
756 |
?>
|
757 |
|
|
|
|
|
758 |
<p class="submit">
|
759 |
+
<form method="post" action="options-general.php?page=mailchimpSF_options">
|
760 |
+
<input type="hidden" name="mcsf_action" value="reset_list" />
|
761 |
+
<input type="submit" name="reset_list" value="<?php esc_attr_e(__('Reset List Options and Select again', 'mailchimp_i18n')); ?>" class="button" />
|
762 |
+
<?php wp_nonce_field('reset_mailchimp_list', '_mcsf_nonce_action'); ?>
|
763 |
+
</form>
|
764 |
</p>
|
765 |
+
<h3><?php esc_html_e(__('Subscribe Form Widget Settings for this List', 'mailchimp_i18n')); ?>:</h3>
|
766 |
+
<h4><?php esc_html_e(__('Selected MailChimp List', 'mailchimp_i18n')); ?>: <?php esc_html_e(get_option('mc_list_name')); ?></h4>
|
767 |
<?php
|
768 |
}
|
769 |
//Just get out if nothing else matters...
|
770 |
if (get_option('mc_list_id') == '') return;
|
771 |
+
|
772 |
+
|
773 |
+
// The main Settings form
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
774 |
?>
|
775 |
|
776 |
<div>
|
777 |
+
<form method="post" action="options-general.php?page=mailchimpSF_options">
|
778 |
<div style="width:600px;">
|
779 |
+
<input type="hidden" name="mcsf_action" value="change_form_settings">
|
780 |
+
<?php wp_nonce_field('update_general_form_settings', '_mcsf_nonce_action'); ?>
|
781 |
+
<input type="submit" value="<?php esc_attr_e(__('Update Subscribe Form Settings', 'mailchimp_i18n')); ?>" class="button" />
|
782 |
<table class="widefat">
|
783 |
<tr valign="top">
|
784 |
+
<th scope="row"><?php esc_html_e(__('Monkey Rewards', 'mailchimp_i18n')); ?>:</th>
|
785 |
+
<td><input name="mc_rewards" type="checkbox"<?php if (get_option('mc_rewards')=='on' || get_option('mc_rewards')=='' ) { echo ' checked="checked"'; } ?> id="mc_rewards" class="code" />
|
786 |
+
<em><label for="mc_rewards"><?php esc_html_e(__('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.', 'mailchimp_i18n')); ?></label></em>
|
787 |
</td>
|
788 |
</tr>
|
789 |
<tr valign="top">
|
790 |
+
<th scope="row"><?php esc_html_e(__('Use Javascript Support?', 'mailchimp_i18n')); ?>:</th>
|
791 |
+
<td><input name="mc_use_javascript" type="checkbox" <?php checked(get_option('mc_use_javascript'), 'on'); ?> id="mc_use_javascript" class="code" />
|
792 |
+
<em><label for="mc_use_javascript"><?php esc_html_e(__('turning this on will use fancy javascript submission and should degrade gracefully for users not using javascript. It is optional and can be turned on or off at any time.', 'mailchimp_i18n')); ?></label></em>
|
793 |
</td>
|
794 |
</tr>
|
795 |
<tr valign="top">
|
796 |
+
<th scope="row"><?php esc_html_e(__('Include Unsubscribe link?', 'mailchimp_i18n')); ?>:</th>
|
797 |
+
<td><input name="mc_use_unsub_link" type="checkbox"<?php checked(get_option('mc_use_unsub_link'), 'on'); ?> id="mc_use_unsub_link" class="code" />
|
798 |
+
<em><label for="mc_use_unsub_link"><?php esc_html_e(__('turning this on will add a link to your host unsubscribe form', 'mailchimp_i18n')); ?></label></em>
|
799 |
</td>
|
800 |
</tr>
|
801 |
<tr valign="top">
|
802 |
+
<th scope="row"><?php esc_html_e(__('Header content', 'mailchimp_i18n')); ?>:</th>
|
803 |
<td>
|
804 |
+
<textarea name="mc_header_content" rows="2" cols="50"><?php esc_html_e(get_option('mc_header_content')); ?></textarea><br/>
|
805 |
+
<em><?php esc_html_e(__('You can fill this with your own Text, HTML markup (including image links), or Nothing!', 'mailchimp_i18n')); ?></em>
|
806 |
</td>
|
807 |
</tr>
|
808 |
|
809 |
<tr valign="top">
|
810 |
+
<th scope="row"><?php esc_html_e(__('Sub-header content', 'mailchimp_i18n')); ?>:</th>
|
811 |
<td>
|
812 |
+
<textarea name="mc_subheader_content" rows="2" cols="50"><?php esc_html_e(get_option('mc_subheader_content')); ?></textarea><br/>
|
813 |
+
<em><?php esc_html_e(__('You can fill this with your own Text, HTML markup (including image links), or Nothing!', 'mailchimp_i18n')); ?></em>.
|
814 |
+
<?php esc_html_e(__('This will be displayed under the heading and above the form.', 'mailchimp_i18n')); ?>
|
815 |
</td>
|
816 |
</tr>
|
817 |
|
818 |
|
819 |
<tr valign="top">
|
820 |
+
<th scope="row"><?php esc_html_e(__('Submit Button text', 'mailchimp_i18n')); ?>:</th>
|
821 |
<td>
|
822 |
+
<input type="text" name="mc_submit_text" size="30" value="<?php esc_attr_e(get_option('mc_submit_text')); ?>"/>
|
823 |
</td>
|
824 |
</tr>
|
825 |
|
826 |
<tr valign="top">
|
827 |
+
<th scope="row"><?php esc_html_e(__('Custom Styling', 'mailchimp_i18n')); ?>:</th>
|
828 |
<td>
|
829 |
<table class="widefat">
|
830 |
|
831 |
+
<tr><th><label for="mc_custom_style"><?php esc_html_e(__('Turned On?', 'mailchimp_i18n')); ?></label></th><td><input type="checkbox" name="mc_custom_style" id="mc_custom_style"<?php checked(get_option('mc_custom_style'), 'on'); ?> /></td></tr>
|
832 |
+
<tr><th colspan="2"><?php esc_html_e(__('Header Settings (only applies if there are no HTML tags in the Header Content area above)', 'mailchimp_i18n')); ?>:</th></tr>
|
833 |
+
<tr><th><?php esc_html_e(__('Border Width', 'mailchimp_i18n')); ?>:</th><td><input type="text" name="mc_header_border_width" size="3" maxlength="3" value="<?php esc_attr_e(get_option('mc_header_border_width')); ?>"/> px<br/>
|
834 |
+
<em><?php esc_html_e(__('Set to 0 for no border, do not enter', 'mailchimp_i18n')); ?> <strong>px</strong>!</em>
|
835 |
</td></tr>
|
836 |
+
<tr><th><?php esc_html_e(__('Border Color', 'mailchimp_i18n')); ?>:</th><td>#<input type="text" name="mc_header_border_color" size="7" maxlength="6" value="<?php esc_attr_e(get_option('mc_header_border_color')); ?>"/><br/>
|
837 |
+
<em><?php esc_html_e(__('do not enter initial', 'mailchimp_i18n')); ?> <strong>#</strong></em>
|
838 |
</td></tr>
|
839 |
+
<tr><th>Text Color:</th><td>#<input type="text" name="mc_header_text_color" size="7" maxlength="6" value="<?php esc_attr_e(get_option('mc_header_text_color')); ?>"/><br/>
|
840 |
+
<em><?php esc_html_e(__('do not enter initial', 'mailchimp_i18n')); ?> <strong>#</strong></em>
|
841 |
</td></tr>
|
842 |
+
<tr><th>Background Color:</th><td>#<input type="text" name="mc_header_background" size="7" maxlength="6" value="<?php esc_attr_e(get_option('mc_header_background')); ?>"/><br/>
|
843 |
+
<em><?php esc_html_e(__('do not enter initial', 'mailchimp_i18n')); ?> <strong>#</strong></em>
|
844 |
</td></tr>
|
845 |
|
846 |
+
<tr><th colspan="2"><?php esc_html_e(__('Form Settings', 'mailchimp_i18n')); ?>:</th></tr>
|
847 |
+
<tr><th><?php esc_html_e(__('Border Width', 'mailchimp_i18n')); ?>:</th><td><input type="text" name="mc_form_border_width" size="3" maxlength="3" value="<?php esc_attr_e(get_option('mc_form_border_width')); ?>"/> px<br/>
|
848 |
+
<em><?php esc_html_e(__('Set to 0 for no border, do not enter', 'mailchimp_i18n')); ?> <strong>px</strong>!</em>
|
849 |
</td></tr>
|
850 |
+
<tr><th><?php esc_html_e(__('Border Color', 'mailchimp_i18n')); ?>:</th><td>#<input type="text" name="mc_form_border_color" size="7" maxlength="6" value="<?php esc_attr_e(get_option('mc_form_border_color')); ?>"/><br/>
|
851 |
+
<em><?php esc_html_e(__('do not enter initial', 'mailchimp_i18n')); ?> <strong>#</strong></em>
|
852 |
</td></tr>
|
853 |
+
<tr><th>Text Color:</th><td>#<input type="text" name="mc_form_text_color" size="7" maxlength="6" value="<?php esc_attr_e(get_option('mc_form_text_color')); ?>"/><br/>
|
854 |
+
<em><?php esc_html_e(__('do not enter initial', 'mailchimp_i18n')); ?> <strong>#</strong></em>
|
855 |
</td></tr>
|
856 |
+
<tr><th>Background Color:</th><td>#<input type="text" name="mc_form_background" size="7" maxlength="6" value="<?php esc_attr_e(get_option('mc_form_background')); ?>"/><br/>
|
857 |
+
<em><?php esc_html_e(__('do not enter initial', 'mailchimp_i18n')); ?> <strong>#</strong></em>
|
858 |
</td></tr>
|
859 |
</table>
|
860 |
</td>
|
861 |
</tr>
|
862 |
</table>
|
863 |
</div>
|
864 |
+
<input type="submit" value="<?php esc_attr_e(__('Update Subscribe Form Settings', 'mailchimp_i18n')); ?>" class="button" />
|
865 |
+
|
866 |
+
<?php
|
867 |
+
// Merge Variables Table
|
868 |
+
?>
|
869 |
<div style="width:400px;">
|
870 |
+
|
871 |
+
<h4><?php esc_html_e(__('Merge Variables Included', 'mailchimp_i18n')); ?></h4>
|
872 |
+
|
873 |
<?php
|
874 |
+
$mv = get_option('mc_merge_vars');
|
875 |
+
|
876 |
+
if (count($mv) == 0 || !is_array($mv)){
|
877 |
+
?>
|
878 |
+
<em><?php esc_html_e(__('No Merge Variables found.', 'mailchimp_i18n')); ?></em>
|
879 |
+
<?php
|
880 |
} else {
|
881 |
?>
|
882 |
|
883 |
<table class='widefat'>
|
884 |
+
<tr valign="top">
|
885 |
+
<th><?php esc_html_e(__('Name', 'mailchimp_i18n'));?></th>
|
886 |
+
<th><?php esc_html_e(__('Tag', 'mailchimp_i18n'));?></th>
|
887 |
+
<th><?php esc_html_e(__('Required?', 'mailchimp_i18n'));?></th>
|
888 |
+
<th><?php esc_html_e(__('Include?', 'mailchimp_i18n'));?></th>
|
889 |
+
</tr>
|
890 |
<?php
|
891 |
foreach($mv as $var){
|
892 |
+
?>
|
893 |
+
<tr valign="top">
|
894 |
+
<td><?php esc_html_e($var['name']); ?></td>
|
895 |
+
<td><?php esc_html_e($var['tag']); ?></td>
|
896 |
+
<td><?php esc_html_e(($var['req'] == 1) ? 'Y' : 'N'); ?></td>
|
897 |
+
<td>
|
898 |
+
<?php
|
899 |
+
if (!$var['req']){
|
900 |
+
$opt = 'mc_mv_'.$var['tag'];
|
901 |
+
?>
|
902 |
+
<input name="<?php esc_attr_e($opt); ?>" type="checkbox" id="<?php esc_attr_e($opt); ?>" class="code"<?php checked(get_option($opt), 'on'); ?> />
|
903 |
+
<?php
|
904 |
+
} else {
|
905 |
+
?>
|
906 |
+
—
|
907 |
+
<?php
|
908 |
+
}
|
909 |
+
?>
|
910 |
+
</td>
|
911 |
+
</tr>
|
912 |
+
<?php
|
913 |
}
|
914 |
+
?>
|
915 |
+
</table>
|
916 |
+
<?php
|
917 |
}
|
918 |
+
|
919 |
+
?>
|
920 |
+
|
921 |
+
<h4><?php esc_html_e(__('Interest Groups', 'mailchimp_i18n')); ?></h4>
|
922 |
+
|
923 |
+
<?php
|
924 |
+
// Interest Groups Table
|
925 |
+
$ig = get_option('mc_interest_groups');
|
926 |
+
|
927 |
+
if (!is_array($ig) || empty($ig) || $ig == 'N') {
|
928 |
?>
|
929 |
+
<em><?php esc_html_e(__('No Interest Groups Setup for this List', 'mailchimp_i18n')); ?></em>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
930 |
<?php
|
931 |
+
}
|
932 |
+
else {
|
933 |
+
?>
|
934 |
+
<table class='widefat'>
|
935 |
+
<tr valign="top">
|
936 |
+
<th width="75px">
|
937 |
+
<label for="mc_show_interest_groups"><?php esc_html_e(__('Show?', 'mailchimp_i18n')); ?></label>
|
938 |
+
</th>
|
939 |
+
<th>
|
940 |
+
<input name="mc_show_interest_groups" id="mc_show_interest_groups" type="checkbox" id="mc_show_interest_groups" class="code"<?php checked('on', get_option('mc_show_interest_groups')); ?> />
|
941 |
+
</th>
|
942 |
+
</tr>
|
943 |
+
<tr valign="top">
|
944 |
+
<th><?php esc_html_e(__('Name', 'mailchimp_i18n')); ?>:</th>
|
945 |
+
<th><?php esc_html_e($ig['name']); ?></th>
|
946 |
+
</tr>
|
947 |
+
<tr valign="top">
|
948 |
+
<th><?php esc_html_e(__('Input Type', 'mailchimp_i18n')); ?>:</th>
|
949 |
+
<td><?php esc_html_e($ig['form_field']); ?></td>
|
950 |
+
</tr>
|
951 |
+
<tr valign="top">
|
952 |
+
<th><?php esc_html_e(__('Options', 'mailchimp_i18n')); ?>:</th>
|
953 |
+
<td>
|
954 |
+
<ul>
|
955 |
+
<?php
|
956 |
+
foreach($ig['groups'] as $interest){
|
957 |
+
?>
|
958 |
+
<li><?php esc_html_e($interest); ?></li>
|
959 |
+
<?php
|
960 |
+
}
|
961 |
+
?>
|
962 |
+
</ul>
|
963 |
+
</td>
|
964 |
+
</tr>
|
965 |
+
</table>
|
966 |
+
<?php
|
967 |
}
|
968 |
?>
|
969 |
<p class="submit">
|
970 |
+
<input type="submit" value="<?php esc_attr_e(__('Update Subscribe Form Settings', 'mailchimp_i18n')); ?>" class="button" />
|
|
|
971 |
</p>
|
972 |
</div>
|
973 |
</form>
|
977 |
}//mailchimpSF_setup_page()
|
978 |
|
979 |
|
980 |
+
function mailchimpSF_register_widgets() {
|
981 |
+
register_widget('mailchimpSF_Widget');
|
982 |
+
}
|
983 |
+
add_action('widgets_init', 'mailchimpSF_register_widgets');
|
984 |
|
985 |
+
function mailchimpSF_shortcode($atts){
|
986 |
+
ob_start();
|
987 |
+
mailchimpSF_signup_form();
|
988 |
+
return ob_get_clean();
|
989 |
+
}
|
990 |
+
add_shortcode('mailchimpsf_form', 'mailchimpSF_shortcode');
|
991 |
+
|
992 |
+
/**
|
993 |
+
* Attempts to signup a user, per the $_POST args.
|
994 |
+
*
|
995 |
+
* This sets a global message, that is then used in the widget
|
996 |
+
* output to retrieve and display that message.
|
997 |
+
*
|
998 |
+
* @return bool
|
999 |
+
*/
|
1000 |
+
function mailchimpSF_signup_submit() {
|
1001 |
+
$mv = get_option('mc_merge_vars');
|
1002 |
+
$ig = get_option('mc_interest_groups');
|
1003 |
+
|
1004 |
+
$success = true;
|
1005 |
+
$listId = get_option('mc_list_id');
|
1006 |
+
$email = $_POST['mc_mv_EMAIL'];
|
1007 |
+
$merge = $errs = array(); // Set up some vars
|
1008 |
+
|
1009 |
+
// Loop through our Merge Vars, and if they're empty, but required, then print an error, and mark as failed
|
1010 |
+
foreach($mv as $var) {
|
1011 |
+
$opt = 'mc_mv_'.$var['tag'];
|
1012 |
+
if ($var['req'] == 'Y' && trim($_POST[$opt]) == '') {
|
1013 |
+
$success = false;
|
1014 |
+
$errs[] = sprintf(__("You must fill in %s.", 'mailchimp_i18n'), esc_html($var['name']));
|
1015 |
+
}
|
1016 |
+
else {
|
1017 |
+
if ($var['tag'] != 'EMAIL') {
|
1018 |
+
$merge[$var['tag']] = $_POST[$opt];
|
1019 |
+
}
|
1020 |
+
}
|
1021 |
+
}
|
1022 |
+
|
1023 |
+
// Head back to the beginning of the merge vars array
|
1024 |
+
reset($mv);
|
1025 |
+
|
1026 |
+
|
1027 |
+
if (get_option('mc_show_interest_groups')) {
|
1028 |
+
switch ($ig['form_field']) {
|
1029 |
+
case 'select':
|
1030 |
+
case 'dropdown':
|
1031 |
+
case 'radio':
|
1032 |
+
$merge['INTERESTS'] = str_replace(',', '\,', $_POST['interests']);
|
1033 |
+
break;
|
1034 |
+
case 'checkbox':
|
1035 |
+
if (isset($_POST['interests'])) {
|
1036 |
+
foreach ($_POST['interests'] as $i => $nothing) {
|
1037 |
+
$merge['INTERESTS'] .= str_replace(',', '\,', $i).',';
|
1038 |
+
}
|
1039 |
+
}
|
1040 |
+
break;
|
1041 |
+
default:
|
1042 |
+
// Nothing
|
1043 |
+
break;
|
1044 |
+
}
|
1045 |
+
}
|
1046 |
+
|
1047 |
+
|
1048 |
+
// If we're good
|
1049 |
+
if ($success) {
|
1050 |
+
// Clear out empty merge vars
|
1051 |
+
foreach ($merge as $k => $v) {
|
1052 |
+
if (trim($v) === '') {
|
1053 |
+
unset($merge[$k]);
|
1054 |
+
}
|
1055 |
+
}
|
1056 |
+
|
1057 |
+
// If we have an empty $merge, then assign empty string.
|
1058 |
+
if (count($merge) == 0 || $merge == '') {
|
1059 |
+
$merge = '';
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
$GLOBALS["mc_api_key"] = get_option('mc_apikey');
|
1063 |
+
$api = new MCAPI('no_login','is_needed');
|
1064 |
+
$retval = $api->listSubscribe( $listId, $email, $merge);
|
1065 |
+
if (!$retval) {
|
1066 |
+
switch($api->errorCode) {
|
1067 |
+
case '214' :
|
1068 |
+
$errs[] = __("That email address is already subscribed to the list", 'mailchimp_i18n').'.';
|
1069 |
+
break;
|
1070 |
+
case '250' :
|
1071 |
+
list($field, $rest) = explode(' ', $api->errorMessage, 2);
|
1072 |
+
$errs[] = sprintf(__("You must fill in %s.", 'mailchimp_i18n'), esc_html($field));
|
1073 |
+
break;
|
1074 |
+
case '254' :
|
1075 |
+
list($i1, $i2, $i3, $field, $rest) = explode(' ',$api->errorMessage,5);
|
1076 |
+
$errs[] = sprintf(__("%s has invalid content.", 'mailchimp_i18n'), esc_html($field));
|
1077 |
+
break;
|
1078 |
+
case '270' :
|
1079 |
+
$errs[] = __("An invalid Interest Group was selected", 'mailchimp_i18n').'.';
|
1080 |
+
break;
|
1081 |
+
case '502' :
|
1082 |
+
$errs[] = __("That email address is invalid", 'mailchimp_i18n').'.';
|
1083 |
+
break;
|
1084 |
+
default:
|
1085 |
+
$errs[] = $api->errorCode.":".$api->errorMessage;
|
1086 |
+
break;
|
1087 |
+
}
|
1088 |
+
$success = false;
|
1089 |
+
}
|
1090 |
+
else {
|
1091 |
+
$msg = "<strong class='mc_success_msg'>".esc_html(__("Success, you've been signed up! Please look for our confirmation email!", 'mailchimp_i18n'))."</strong>";
|
1092 |
+
}
|
1093 |
}
|
1094 |
+
|
1095 |
+
// If we have errors, then show them
|
1096 |
+
if (count($errs) > 0) {
|
1097 |
+
$msg = '<span class="mc_error_msg">';
|
1098 |
+
foreach($errs as $error){
|
1099 |
+
$msg .= '» '.esc_html($error).'<br />';
|
1100 |
+
}
|
1101 |
+
$msg .= '</span>';
|
1102 |
+
}
|
1103 |
+
|
1104 |
+
// Set our global message
|
1105 |
+
mailchimpSF_global_msg($msg);
|
1106 |
+
|
1107 |
+
return $success;
|
1108 |
}
|
1109 |
|
1110 |
+
|
1111 |
+
|
1112 |
+
/**********************
|
1113 |
+
* Utility Functions *
|
1114 |
+
**********************/
|
1115 |
+
/**
|
1116 |
+
* Utility function to allow placement of plugin in plugins, mu-plugins, child or parent theme's plugins folders
|
1117 |
+
*
|
1118 |
+
* This function must be ran _very early_ in the load process, as it sets up important constants for the rest of the plugin
|
1119 |
+
*/
|
1120 |
+
function mailchimpSF_where_am_i() {
|
1121 |
+
$locations = array(
|
1122 |
+
'plugins' => array(
|
1123 |
+
'dir' => WP_PLUGIN_DIR,
|
1124 |
+
'url' => WP_PLUGIN_URL,
|
1125 |
+
),
|
1126 |
+
'mu_plugins' => array(
|
1127 |
+
'dir' => WPMU_PLUGIN_DIR,
|
1128 |
+
'url' => WPMU_PLUGIN_URL,
|
1129 |
+
),
|
1130 |
+
'template' => array(
|
1131 |
+
'dir' => trailingslashit(get_template_directory()).'plugins/',
|
1132 |
+
'url' => trailingslashit(get_template_directory_uri()).'plugins/',
|
1133 |
+
),
|
1134 |
+
'stylesheet' => array(
|
1135 |
+
'dir' => trailingslashit(get_stylesheet_directory()).'plugins/',
|
1136 |
+
'url' => trailingslashit(get_stylesheet_directory_uri()).'plugins/',
|
1137 |
+
),
|
1138 |
+
);
|
1139 |
+
|
1140 |
+
// Set defaults
|
1141 |
+
$mscf_dir = trailingslashit(WP_PLUGIN_DIR).'mailchimp/';
|
1142 |
+
$mscf_url = trailingslashit(WP_PLUGIN_URL).'mailchimp/';
|
1143 |
+
|
1144 |
+
// Try our hands at finding the real location
|
1145 |
+
foreach ($locations as $key => $loc) {
|
1146 |
+
$dir = trailingslashit($loc['dir']).'mailchimp/';
|
1147 |
+
$url = trailingslashit($loc['url']).'mailchimp/';
|
1148 |
+
if (is_file($dir.basename(__FILE__))) {
|
1149 |
+
$mscf_dir = $dir;
|
1150 |
+
$mscf_url = $url;
|
1151 |
+
break;
|
1152 |
+
}
|
1153 |
+
}
|
1154 |
+
define('MCSF_DIR', $mscf_dir);
|
1155 |
+
define('MCSF_URL', $mscf_url);
|
1156 |
}
|
1157 |
+
|
1158 |
|
1159 |
?>
|
mailchimp_ajax.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
ob_start();//start buffering for the ajax call just in case
|
3 |
-
include_once('../../../wp-blog-header.php');
|
4 |
-
include_once('mailchimp_includes.php');
|
5 |
-
ob_end_clean();ob_end_clean();ob_end_clean();//stop buffering and discard anything output
|
6 |
-
mailchimpSF_display_widget();
|
7 |
-
exit;
|
8 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mailchimp_compat.php
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* Home for Backwards Compatibility Functions */
|
3 |
+
|
4 |
+
/* Form Display Functions */
|
5 |
+
if (!function_exists('mc_display_widget')){
|
6 |
+
function mc_display_widget($args=array()){
|
7 |
+
mailchimpSF_signup_form($args);
|
8 |
+
}
|
9 |
+
}
|
10 |
+
if (!function_exists('mailchimpSF_display_widget')){
|
11 |
+
function mailchimpSF_display_widget($args=array()){
|
12 |
+
mailchimpSF_signup_form($args);
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
|
17 |
+
/* Shortcodes */
|
18 |
+
add_shortcode('mailchimpsf_widget', 'mailchimpSF_shortcode');
|
19 |
+
|
20 |
+
|
21 |
+
/* Functions for < WP 3.0 Compat */
|
22 |
+
|
23 |
+
if (!function_exists('home_url')) {
|
24 |
+
/**
|
25 |
+
* Retrieve the home url for the current site.
|
26 |
+
*
|
27 |
+
* Returns the 'home' option with the appropriate protocol, 'https' if
|
28 |
+
* is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is
|
29 |
+
* overridden.
|
30 |
+
*
|
31 |
+
* @package WordPress
|
32 |
+
* @since 3.0.0
|
33 |
+
*
|
34 |
+
* @uses get_home_url()
|
35 |
+
*
|
36 |
+
* @param string $path (optional) Path relative to the home url.
|
37 |
+
* @param string $scheme (optional) Scheme to give the home url context. Currently 'http','https'
|
38 |
+
* @return string Home url link with optional path appended.
|
39 |
+
*/
|
40 |
+
function home_url( $path = '', $scheme = null ) {
|
41 |
+
return get_home_url(null, $path, $scheme);
|
42 |
+
}
|
43 |
+
|
44 |
+
}
|
45 |
+
|
46 |
+
if (!function_exists('get_home_url')) {
|
47 |
+
/**
|
48 |
+
* Retrieve the home url for a given site.
|
49 |
+
*
|
50 |
+
* Returns the 'home' option with the appropriate protocol, 'https' if
|
51 |
+
* is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is
|
52 |
+
* overridden.
|
53 |
+
*
|
54 |
+
* @package WordPress
|
55 |
+
* @since 3.0.0
|
56 |
+
*
|
57 |
+
* @param int $blog_id (optional) Blog ID. Defaults to current blog.
|
58 |
+
* @param string $path (optional) Path relative to the home url.
|
59 |
+
* @param string $scheme (optional) Scheme to give the home url context. Currently 'http','https'
|
60 |
+
* @return string Home url link with optional path appended.
|
61 |
+
*/
|
62 |
+
function get_home_url( $blog_id = null, $path = '', $scheme = null ) {
|
63 |
+
$orig_scheme = $scheme;
|
64 |
+
|
65 |
+
if ( !in_array( $scheme, array( 'http', 'https' ) ) )
|
66 |
+
$scheme = is_ssl() && !is_admin() ? 'https' : 'http';
|
67 |
+
|
68 |
+
if ( empty( $blog_id ) || !is_multisite() )
|
69 |
+
$home = get_option( 'home' );
|
70 |
+
else
|
71 |
+
$home = get_blog_option( $blog_id, 'home' );
|
72 |
+
|
73 |
+
$url = str_replace( 'http://', "$scheme://", $home );
|
74 |
+
|
75 |
+
if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
|
76 |
+
$url .= '/' . ltrim( $path, '/' );
|
77 |
+
|
78 |
+
return apply_filters( 'home_url', $url, $path, $orig_scheme, $blog_id );
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
if (!function_exists('is_multisite')) {
|
83 |
+
/**
|
84 |
+
* Whether Multisite support is enabled
|
85 |
+
*
|
86 |
+
* @since 3.0.0
|
87 |
+
*
|
88 |
+
* @return bool True if multisite is enabled, false otherwise.
|
89 |
+
*/
|
90 |
+
function is_multisite() {
|
91 |
+
if ( defined( 'MULTISITE' ) )
|
92 |
+
return MULTISITE;
|
93 |
+
|
94 |
+
if ( defined( 'VHOST' ) || defined( 'SUNRISE' ) )
|
95 |
+
return true;
|
96 |
+
|
97 |
+
return false;
|
98 |
+
}
|
99 |
+
}
|
100 |
+
?>
|
mailchimp_includes.php
DELETED
@@ -1,202 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
//we renamed all functions for better namespacing - add this for backwards compat if it won't conflict
|
4 |
-
if (!function_exists('mc_display_widget')){
|
5 |
-
function mc_display_widget($args=array()){
|
6 |
-
mailchimpSF_display_widget($args);
|
7 |
-
}
|
8 |
-
}
|
9 |
-
|
10 |
-
function mailchimpSF_display_widget($args=array()){
|
11 |
-
extract($args);
|
12 |
-
|
13 |
-
$mv = get_option('mc_merge_vars');
|
14 |
-
$ig = get_option('mc_interest_groups');
|
15 |
-
if (!is_array($mv)){
|
16 |
-
//apparently in WP 2.6 get_option() unserializes arrays for us.
|
17 |
-
$mv = unserialize($mv);
|
18 |
-
}
|
19 |
-
if (!is_array($ig)){
|
20 |
-
$ig = unserialize($ig);
|
21 |
-
}
|
22 |
-
if (!is_array($mv)){
|
23 |
-
echo $before_widget;
|
24 |
-
echo '<div class="mc_error_msg">There was a problem loading your MailChimp details. Please re-run the setup process under Settings->MailChimp Setup</div>';
|
25 |
-
echo "$after_widget\n";
|
26 |
-
return;
|
27 |
-
}
|
28 |
-
$msg = '';
|
29 |
-
if (isset($_REQUEST['mc_signup_submit'])){
|
30 |
-
$failed = false;
|
31 |
-
$listId = get_option('mc_list_id');
|
32 |
-
$email = $_REQUEST['mc_mv_EMAIL'];
|
33 |
-
$merge = array();
|
34 |
-
$errs = array();
|
35 |
-
foreach($mv as $var){
|
36 |
-
$opt = 'mc_mv_'.$var['tag'];
|
37 |
-
if ($var['req']=='Y' && trim($_REQUEST[$opt])==''){
|
38 |
-
$failed = true;
|
39 |
-
$errs[] = __("You must fill in", 'mailchimp_i18n').' '.htmlentities($var['name'],ENT_COMPAT,'UTF-8').'.';
|
40 |
-
} else {
|
41 |
-
if ($var['tag']!='EMAIL'){
|
42 |
-
$merge[$var['tag']] = $_REQUEST[$opt];
|
43 |
-
}
|
44 |
-
}
|
45 |
-
}
|
46 |
-
reset($mv);
|
47 |
-
if (get_option('mc_show_interest_groups')){
|
48 |
-
if ($ig['form_field']=='select' || $ig['form_field']=='dropdown' || $ig['form_field']=='radio'){
|
49 |
-
$merge['INTERESTS'] = str_replace(',','\,',$_REQUEST['interests']);
|
50 |
-
} elseif($ig['form_field']=='checkbox') {
|
51 |
-
if (isset($_REQUEST['interests'])){
|
52 |
-
foreach($_REQUEST['interests'] as $i=>$nothing){
|
53 |
-
$merge['INTERESTS'] .= str_replace(',','\,',$i).',';
|
54 |
-
}
|
55 |
-
}
|
56 |
-
}
|
57 |
-
}
|
58 |
-
if (!$failed){
|
59 |
-
foreach($merge as $k=>$v){
|
60 |
-
if (trim($v)===''){
|
61 |
-
unset($merge[$k]);
|
62 |
-
}
|
63 |
-
}
|
64 |
-
if (sizeof($merge) == 0 || $merge==''){ $merge = ''; }
|
65 |
-
|
66 |
-
$GLOBALS["mc_api_key"] = get_option('mc_apikey');
|
67 |
-
$api = new MCAPI('no_login','is_needed');
|
68 |
-
$retval = $api->listSubscribe( $listId, $email, $merge);
|
69 |
-
if (!$retval){
|
70 |
-
switch($api->errorCode){
|
71 |
-
case '214' : $errs[] = __("That email address is already subscribed to the list", 'mailchimp_i18n').'.'; break;
|
72 |
-
case '250' :
|
73 |
-
list($field, $rest) = explode(' ',$api->errorMessage,2);
|
74 |
-
$errs[] = __("You must fill in", 'mailchimp_i18n').' '.htmlentities($field,ENT_COMPAT,'UTF-8').'.';
|
75 |
-
break;
|
76 |
-
case '254' :
|
77 |
-
list($i1, $i2, $i3, $field, $rest) = explode(' ',$api->errorMessage,5);
|
78 |
-
$errs[] = sprintf(__("%s has invalid content", 'mailchimp_i18n'),htmlentities($field,ENT_COMPAT,'UTF-8')).'.';
|
79 |
-
break;
|
80 |
-
case '270' : $errs[] = __("An invalid Interest Group was selected", 'mailchimp_i18n').'.'; break;
|
81 |
-
case '502' : $errs[] = __("That email address is invalid", 'mailchimp_i18n').'.'; break;
|
82 |
-
default:
|
83 |
-
$errs[] = $api->errorCode.":".$api->errorMessage; break;
|
84 |
-
}
|
85 |
-
$failed = true;
|
86 |
-
} else {
|
87 |
-
$msg = "<strong class='mc_success_msg'>".__("Success, you've been signed up! Please look for our confirmation email!", 'mailchimp_i18n')."</strong>";
|
88 |
-
}
|
89 |
-
}
|
90 |
-
if (sizeof($errs)>0){
|
91 |
-
$msg = '<span class="mc_error_msg">';
|
92 |
-
foreach($errs as $error){
|
93 |
-
$msg .= "» ".htmlentities($error, ENT_COMPAT, 'UTF-8').'<br/>';
|
94 |
-
}
|
95 |
-
$msg .= '</span>';
|
96 |
-
}
|
97 |
-
}
|
98 |
-
if ($_REQUEST['mc_submit_type']=='js'){
|
99 |
-
if (!headers_sent()){ //just in case...
|
100 |
-
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT', true, 200);
|
101 |
-
}
|
102 |
-
echo $msg;
|
103 |
-
return;
|
104 |
-
}
|
105 |
-
$uid = get_option('mc_user_id');
|
106 |
-
$list_name = get_option('mc_list_name');
|
107 |
-
echo $before_widget;
|
108 |
-
?>
|
109 |
-
<a name="mc_signup_form"></a>
|
110 |
-
<?php
|
111 |
-
$header = get_option('mc_header_content');
|
112 |
-
if (strlen($header)==strlen(strip_tags($header))){
|
113 |
-
echo $before_title?$before_title:'<div class="mc_custom_border_hdr">';
|
114 |
-
echo get_option('mc_header_content');
|
115 |
-
echo $after_title?$after_title:'</div>';
|
116 |
-
} else {
|
117 |
-
echo get_option('mc_header_content');
|
118 |
-
}
|
119 |
-
$sub_heading = trim(get_option('mc_subheader_content'));
|
120 |
-
?>
|
121 |
-
<div id="mc_signup_container">
|
122 |
-
<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>#mc_signup_form" id="mc_signup_form">
|
123 |
-
<? if ($sub_heading){ ?>
|
124 |
-
<div id="mc_subheader"><?=$sub_heading?></div>
|
125 |
-
<? } ?>
|
126 |
-
<div>
|
127 |
-
<input type="hidden" id="mc_submit_type" name="mc_submit_type" value="html"/>
|
128 |
-
<?php
|
129 |
-
echo '<div class="updated" id="mc_message">'.$msg.'</div>';
|
130 |
-
//don't show the "required" stuff if there's only 1 field to display.
|
131 |
-
$num_fields = 0;
|
132 |
-
foreach((array)$mv as $var){
|
133 |
-
$opt = 'mc_mv_'.$var['tag'];
|
134 |
-
if ($var['req'] || get_option($opt)=='on'){
|
135 |
-
$num_fields++;
|
136 |
-
}
|
137 |
-
}
|
138 |
-
if (is_array($mv)){
|
139 |
-
reset($mv);
|
140 |
-
}
|
141 |
-
foreach($mv as $var){
|
142 |
-
$opt = 'mc_mv_'.$var['tag'];
|
143 |
-
if ($var['req'] || get_option($opt)=='on'){
|
144 |
-
echo '<div class="mc_merge_var">';
|
145 |
-
echo '<label for="'.$opt.'" class="mc_var_label">'.$var['name'];
|
146 |
-
if ($var['req'] && $num_fields>1){ echo ' <span class="mc_required">*</span>'; }
|
147 |
-
echo '</label><br/>';
|
148 |
-
echo '<input type="text" size="18" value="" name="'.$opt.'" id="'.$opt.'" class="mc_input"/>';
|
149 |
-
echo '</div>';
|
150 |
-
}
|
151 |
-
}
|
152 |
-
if ($num_fields>1){
|
153 |
-
echo '<div id="mc-indicates-required">* = '.__('required field', 'mailchimp_i18n').'</div>';
|
154 |
-
}
|
155 |
-
if (get_option('mc_show_interest_groups')=='on' && $ig){
|
156 |
-
echo '<div id="mc_interests_header">'.htmlentities($ig['name'], ENT_COMPAT, 'UTF-8').'</div>';
|
157 |
-
$i=0;
|
158 |
-
echo '<div class="mc_interest">';
|
159 |
-
if ($ig['form_field']=='checkbox' || $ig['form_field']=='checkboxes'){
|
160 |
-
foreach($ig['groups'] as $interest){
|
161 |
-
echo '<input type="checkbox" name="interests['.$interest.']" id="mc_interest_'.$i.'" class="mc_interest"/>';
|
162 |
-
echo '<label for="mc_interest_'.$i.'" class="mc_interest_label"> '.htmlentities($interest, ENT_COMPAT, 'UTF-8').'</label><br/>';
|
163 |
-
$i++;
|
164 |
-
}
|
165 |
-
} elseif ($ig['form_field']=='radio'){
|
166 |
-
foreach($ig['groups'] as $interest){
|
167 |
-
echo '<input type="radio" name="interests" id="mc_interest_'.$i.'" class="mc_interest" value="'.$interest.'"/>';
|
168 |
-
echo '<label for="mc_interest_'.$i.'" class="mc_interest_label"> '.htmlentities($interest, ENT_COMPAT, 'UTF-8').'</label><br/>';
|
169 |
-
$i++;
|
170 |
-
}
|
171 |
-
} elseif ($ig['form_field']=='select' || $ig['form_field']=='dropdown'){
|
172 |
-
echo '<select name="interests">';
|
173 |
-
echo '<option value=""></option>';
|
174 |
-
foreach($ig['groups'] as $interest){
|
175 |
-
echo '<option value="'.$interest.'">'.htmlentities($interest, ENT_COMPAT, 'UTF-8').'</option>';
|
176 |
-
}
|
177 |
-
echo '</select>';
|
178 |
-
}
|
179 |
-
echo '</div>';
|
180 |
-
}
|
181 |
-
?>
|
182 |
-
|
183 |
-
<div class="mc_signup_submit">
|
184 |
-
<input type="submit" name="mc_signup_submit" id="mc_signup_submit" value="<?php echo htmlentities(get_option('mc_submit_text'), ENT_COMPAT, 'UTF-8'); ?>" class="button"/>
|
185 |
-
</div>
|
186 |
-
<?php
|
187 |
-
if ( get_option('mc_use_unsub_link')=='on') {
|
188 |
-
echo '<div id="mc_unsub_link" align="center"><a href="http://list-manage.com/unsubscribe/?u='.get_option('mc_user_id').'&id='.get_option('mc_list_id').'" target="_blank">
|
189 |
-
'.__('unsubscribe from list', 'mailchimp_i18n').'</a></div>';
|
190 |
-
}
|
191 |
-
if ( get_option('mc_rewards')=='on') {
|
192 |
-
echo '<br/><div id="mc_display_rewards" align="center">'.__('powered by', 'mailchimp_i18n').' <a href="http://www.mailchimp.com/affiliates/?aid='.get_option('mc_user_id').'&afl=1">MailChimp</a>!</div>';
|
193 |
-
}
|
194 |
-
?>
|
195 |
-
</div>
|
196 |
-
</form>
|
197 |
-
</div>
|
198 |
-
<?php
|
199 |
-
echo $after_widget;
|
200 |
-
}
|
201 |
-
|
202 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mailchimp_widget.php
ADDED
@@ -0,0 +1,223 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Displays a MailChimp Signup Form
|
4 |
+
**/
|
5 |
+
function mailchimpSF_signup_form($args = array()) {
|
6 |
+
extract($args);
|
7 |
+
|
8 |
+
$mv = get_option('mc_merge_vars');
|
9 |
+
$ig = get_option('mc_interest_groups');
|
10 |
+
|
11 |
+
// See if we have valid Merge Vars
|
12 |
+
if (!is_array($mv)){
|
13 |
+
echo $before_widget;
|
14 |
+
?>
|
15 |
+
<div class="mc_error_msg">
|
16 |
+
<?php esc_html_e(__('There was a problem loading your MailChimp details. Please re-run the setup process under Settings->MailChimp Setup', 'mailchimp_i18n')); ?>
|
17 |
+
</div>
|
18 |
+
<?php
|
19 |
+
echo $after_widget;
|
20 |
+
return;
|
21 |
+
}
|
22 |
+
|
23 |
+
// Get some options
|
24 |
+
$uid = get_option('mc_user_id');
|
25 |
+
$list_name = get_option('mc_list_name');
|
26 |
+
|
27 |
+
echo $before_widget;
|
28 |
+
|
29 |
+
$header = get_option('mc_header_content');
|
30 |
+
// See if we have custom header content
|
31 |
+
if (!empty($header)) {
|
32 |
+
// See if we need to wrap the header content in our own div
|
33 |
+
if (strlen($header) == strlen(strip_tags($header))){
|
34 |
+
echo $before_title ? $before_title : '<div class="mc_custom_border_hdr">';
|
35 |
+
echo $header; // don't escape $header b/c it may have HTML allowed
|
36 |
+
echo $after_title ? $after_title : '</div><!-- /mc_custom_border_hdr -->';
|
37 |
+
}
|
38 |
+
else {
|
39 |
+
echo $header; // don't escape $header b/c it may have HTML allowed
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
$sub_heading = trim(get_option('mc_subheader_content'));
|
44 |
+
?>
|
45 |
+
|
46 |
+
<div id="mc_signup">
|
47 |
+
<form method="post" action="#mc_signup" id="mc_signup_form">
|
48 |
+
<input type="hidden" id="mc_submit_type" name="mc_submit_type" value="html" />
|
49 |
+
<input type="hidden" name="mcsf_action" value="mc_submit_signup_form" />
|
50 |
+
<?php wp_nonce_field('mc_submit_signup_form', '_mc_submit_signup_form_nonce', false); ?>
|
51 |
+
|
52 |
+
<?php
|
53 |
+
if ($sub_heading) {
|
54 |
+
?>
|
55 |
+
<div id="mc_subheader">
|
56 |
+
<?php echo $sub_heading; ?>
|
57 |
+
</div><!-- /mc_subheader -->
|
58 |
+
<?php
|
59 |
+
}
|
60 |
+
?>
|
61 |
+
|
62 |
+
<div class="mc_form_inside">
|
63 |
+
|
64 |
+
<div class="updated" id="mc_message">
|
65 |
+
<?php echo mailchimpSF_global_msg(); ?>
|
66 |
+
</div><!-- /mc_message -->
|
67 |
+
|
68 |
+
<?php
|
69 |
+
//don't show the "required" stuff if there's only 1 field to display.
|
70 |
+
$num_fields = 0;
|
71 |
+
foreach((array)$mv as $var) {
|
72 |
+
$opt = 'mc_mv_'.$var['tag'];
|
73 |
+
if ($var['req'] || get_option($opt) == 'on') {
|
74 |
+
$num_fields++;
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
if (is_array($mv)) {
|
79 |
+
// head on back to the beginning of the array
|
80 |
+
reset($mv);
|
81 |
+
}
|
82 |
+
|
83 |
+
// Loop over our vars, and output the ones that are set to display
|
84 |
+
foreach($mv as $var) {
|
85 |
+
$opt = 'mc_mv_'.$var['tag'];
|
86 |
+
// See if that var is set as required, or turned on (for display)
|
87 |
+
if ($var['req'] || get_option($opt) == 'on') {
|
88 |
+
?>
|
89 |
+
<div class="mc_merge_var">
|
90 |
+
<label for="<?php esc_attr_e($opt); ?>" class="mc_var_label"><?php esc_html_e($var['name']); ?>
|
91 |
+
<?php
|
92 |
+
if ($var['req'] && $num_fields > 1) {
|
93 |
+
?>
|
94 |
+
<span class="mc_required">*</span>
|
95 |
+
<?php
|
96 |
+
}
|
97 |
+
?>
|
98 |
+
</label>
|
99 |
+
|
100 |
+
<br />
|
101 |
+
|
102 |
+
<input type="text" size="18" value="" name="<?php esc_attr_e($opt); ?>" id="<?php esc_attr_e($opt); ?>" class="mc_input"/>
|
103 |
+
</div><!-- /mc_merge_var -->
|
104 |
+
<?php
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
|
109 |
+
// Show an explanation of the * if there's more than one field
|
110 |
+
if ($num_fields > 1){
|
111 |
+
?>
|
112 |
+
<div id="mc-indicates-required">
|
113 |
+
* = <?php esc_html_e(__('required field', 'mailchimp_i18n')); ?>
|
114 |
+
</div><!-- /mc-indicates-required -->
|
115 |
+
<?php
|
116 |
+
}
|
117 |
+
|
118 |
+
|
119 |
+
// Show our Interest groups fields if we have them, and they're set to on
|
120 |
+
if ($ig && get_option('mc_show_interest_groups') == 'on') {
|
121 |
+
?>
|
122 |
+
|
123 |
+
<div id="mc_interests_header">
|
124 |
+
<?php esc_html_e($ig['name']); ?>
|
125 |
+
</div><!-- /mc_interests_header -->
|
126 |
+
|
127 |
+
<div class="mc_interest">
|
128 |
+
|
129 |
+
<?php
|
130 |
+
$i=0; // Set our counter
|
131 |
+
switch ($ig['form_field']) {
|
132 |
+
case 'checkbox':
|
133 |
+
case 'checkboxes':
|
134 |
+
foreach($ig['groups'] as $interest){
|
135 |
+
?>
|
136 |
+
<input type="checkbox" name="<?php esc_attr_e('interests['.$interest.']'); ?>" id="<?php esc_attr_e('mc_interest_'.$i); ?>" class="mc_interest"/>
|
137 |
+
<label for="<?php esc_attr_e('mc_interest_'.$i); ?>" class="mc_interest_label"> <?php esc_html_e($interest); ?></label>
|
138 |
+
<br/>
|
139 |
+
<?php
|
140 |
+
$i++;
|
141 |
+
}
|
142 |
+
break;
|
143 |
+
case 'radio':
|
144 |
+
foreach($ig['groups'] as $interest){
|
145 |
+
?>
|
146 |
+
<input type="radio" name="interests" id="<?php esc_attr_e('mc_interest_'.$i); ?>" class="mc_interest" value="<?php esc_attr_e($interest); ?>"/>
|
147 |
+
<label for="<?php esc_attr_e('mc_interest_'.$i); ?>" class="mc_interest_label"> <?php esc_html_e($interest); ?></label>
|
148 |
+
<br/>
|
149 |
+
<?php
|
150 |
+
$i++;
|
151 |
+
}
|
152 |
+
break;
|
153 |
+
case 'select':
|
154 |
+
case 'dropdown':
|
155 |
+
?>
|
156 |
+
<select name="interests">
|
157 |
+
<option value=""></option>
|
158 |
+
<?php
|
159 |
+
foreach($ig['groups'] as $interest){
|
160 |
+
?>
|
161 |
+
<option value="<?php esc_attr_e($interest); ?>"><?php esc_html_e($interest); ?></option>
|
162 |
+
<?php
|
163 |
+
}
|
164 |
+
?>
|
165 |
+
</select>
|
166 |
+
<?php
|
167 |
+
break;
|
168 |
+
}
|
169 |
+
?>
|
170 |
+
|
171 |
+
</div><!-- /mc_interest -->
|
172 |
+
|
173 |
+
<?php
|
174 |
+
}
|
175 |
+
?>
|
176 |
+
|
177 |
+
<div class="mc_signup_submit">
|
178 |
+
<input type="submit" name="mc_signup_submit" id="mc_signup_submit" value="<?php esc_attr_e(get_option('mc_submit_text')); ?>" class="button" />
|
179 |
+
</div><!-- /mc_signup_submit -->
|
180 |
+
|
181 |
+
|
182 |
+
<?php
|
183 |
+
if ( get_option('mc_use_unsub_link') == 'on') {
|
184 |
+
?>
|
185 |
+
<div id="mc_unsub_link" align="center">
|
186 |
+
<a href="<?php echo esc_url('http://list-manage.com/unsubscribe/?u='.get_option('mc_user_id').'&id='.get_option('mc_list_id')); ?>" target="_blank"><?php esc_html_e(__('unsubscribe from list', 'mailchimp_i18n')); ?></a>
|
187 |
+
</div><!-- /mc_unsub_link -->
|
188 |
+
<?php
|
189 |
+
}
|
190 |
+
if ( get_option('mc_rewards') == 'on') {
|
191 |
+
?>
|
192 |
+
<br/>
|
193 |
+
<div id="mc_display_rewards" align="center">
|
194 |
+
<?php esc_html_e(__('powered by', 'mailchimp_i18n')); ?> <a href="<?php echo esc_url('http://www.mailchimp.com/affiliates/?aid='.get_option('mc_user_id').'&afl=1'); ?>">MailChimp</a>!
|
195 |
+
</div><!-- /mc_display_rewards -->
|
196 |
+
<?php
|
197 |
+
}
|
198 |
+
?>
|
199 |
+
</div><!-- /mc_form_inside -->
|
200 |
+
</form><!-- /mc_signup_form -->
|
201 |
+
</div><!-- /mc_signup_container -->
|
202 |
+
<?php
|
203 |
+
echo $after_widget;
|
204 |
+
}
|
205 |
+
|
206 |
+
|
207 |
+
/**
|
208 |
+
* MailChimp Subscribe Box widget class
|
209 |
+
*/
|
210 |
+
class mailchimpSF_Widget extends WP_Widget {
|
211 |
+
|
212 |
+
function mailchimpSF_Widget() {
|
213 |
+
$widget_ops = array(
|
214 |
+
'description' => __('Displays a MailChimp Subscribe box', 'mailchimp_i18n')
|
215 |
+
);
|
216 |
+
$this->WP_Widget('mailchimpSF_widget', __('MailChimp Widget', 'mailchimp_i18n'), $widget_ops);
|
217 |
+
}
|
218 |
+
|
219 |
+
function widget( $args, $instance ) {
|
220 |
+
mailchimpSF_signup_form(array_merge($args, $instance));
|
221 |
+
}
|
222 |
+
}
|
223 |
+
?>
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== MailChimp List Subscribe Form ===
|
2 |
-
Contributors: mc_jesse
|
3 |
Tags: mailchimp, email, newsletter, signup, marketing, plugin, widget
|
4 |
-
Requires at least: 2.
|
5 |
-
Tested up to: 3.0
|
6 |
-
Stable tag: 1.
|
7 |
Author URI: http://www.mailchimp.com/api/
|
8 |
Plugin URI: http://www.mailchimp.com/plugins/mailchimp-wordpress-plugin/
|
9 |
|
@@ -11,60 +11,42 @@ The MailChimp plugin allows you to quickly and easily add a signup form for your
|
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
-
The MailChimp plugin allows you to quickly and easily add a signup form for your MailChimp list as a widget
|
15 |
-
on your Wordpress 2.3 or higher site.
|
16 |
|
17 |
-
Not sure what [MailChimp](http://www.mailchimp.com/features/full_list/) is or if it will be helpful? Signup up for a
|
18 |
-
[FREE Trial Account](http://www.mailchimp.com/signup/) and see for yourself!
|
19 |
|
20 |
-
After Installation, the setup page will guide you through entering your Login
|
21 |
-
selecting options for the Merge Fields and Interest Groups you have setup, and then add the Widget to your site. The
|
22 |
-
time from starting installation to have the form on your site should be less than 5 minutes - absolutely everything
|
23 |
-
can be done via the Wordpress Setting GUI - no file editing at all!
|
24 |
|
25 |
-
You can also visit our [homepage for the plugin](http://www.mailchimp.com/plugins/mailchimp-wordpress-plugin/), but if you are reading this,
|
26 |
-
you probably don't need to.
|
27 |
|
28 |
== Installation ==
|
29 |
|
30 |
This section describes how to install the plugin and get started using it.
|
31 |
|
32 |
-
= Version 2.
|
33 |
-
1. Unzip our archive and upload the entire `mailchimp` directory to your `/wp-content/plugins/` directory
|
34 |
-
1. Activate the plugin through the 'Plugins' menu in WordPress
|
35 |
-
1. Go to Options and look for "MailChimp Setup" in the menu at the top
|
36 |
-
1. Enter your MailChimp Username & Password and let the plugin verify them
|
37 |
-
1. Select One of your lists to have your visitors subscribe to.
|
38 |
-
1. (optionally) Turn on or off the Monkey Rewards option
|
39 |
-
1. (optionally) Turn your Merge Vars and Interest Groups `on` and `off`
|
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
|
47 |
-
1. Enter your MailChimp
|
48 |
1. Select One of your lists to have your visitors subscribe to.
|
49 |
1. (optionally) Turn on or off the Monkey Rewards option
|
50 |
1. (optionally) Turn your Merge Vars and Interest Groups `on` and `off`
|
51 |
-
1. Finally, go to
|
52 |
1. And you are DONE!
|
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 using Wordpress v2.
|
59 |
-
` [
|
60 |
|
61 |
If you are adding it inside a php code block, pop this in:
|
62 |
|
63 |
-
`
|
64 |
|
65 |
Or, if you are dropping it in between a bunch of HTML, use this:
|
66 |
|
67 |
-
`<?php
|
68 |
|
69 |
Where ever you want it to show up.
|
70 |
|
@@ -72,6 +54,9 @@ Note: in some environments you will need to install the Exec_PHP plugin to use t
|
|
72 |
http://wordpress.org/extend/plugins/exec-php/
|
73 |
|
74 |
|
|
|
|
|
|
|
75 |
|
76 |
== Internationalization (i18n) ==
|
77 |
Currently we have the plugin configured so it can be easily translated and the following languages supported:
|
@@ -84,8 +69,7 @@ Currently we have the plugin configured so it can be easily translated and the f
|
|
84 |
* it_IT - Italian in Italy (thanks to [Stefan Des](http://www.stefandes.com) for contributing)
|
85 |
* ko_KR - Korean (thanks to 백선기 (SK Baek) for contributing)
|
86 |
* nb_NO - Norwegian (thanks to [Alexander Roterud aka Defrag](http://www.tigerpews.com) for contributing)
|
87 |
-
* nl_BE - Dutch
|
88 |
-
* nl_NL - Dutch in Netherladns (thanks to Marten Schulp for contributing)
|
89 |
* pt_BR - Portuguese in Brazil (thanks to Maria Manoela Porto for contributing)
|
90 |
* ru_RU - Russian in the Russian Federation (thanks to [Илья](http://fatcow.com) for contributing)
|
91 |
* sv_SE - Swedish in Sweden (thanks to [Sebastian Johnsson](http://www.agiley.se/) for contributing)
|
@@ -109,14 +93,13 @@ To learn more, just check out our site: [MailChimp](http://www.mailchimp.com/fea
|
|
109 |
|
110 |
= Wait a minute, you want me to pay to try this? =
|
111 |
|
112 |
-
*Absolutely not!* We welcome you to come signup for a [FREE Trial Account](http://www.mailchimp.com/signup/) and
|
113 |
-
see if you find it useful.
|
114 |
|
115 |
= I want this in my language, do you have a translation? =
|
116 |
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:
|
117 |
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
|
118 |
2. Grab a translation editor. [POedit](http://www.poedit.net/) works for us
|
119 |
-
3. Translate each line - if you need some context, just open up mailchimp.php or
|
120 |
4. Send it to us - api@mailchimp.com - and we'll test it and include it
|
121 |
|
122 |
|
1 |
=== MailChimp List Subscribe Form ===
|
2 |
+
Contributors: mc_jesse, crowdfavorite
|
3 |
Tags: mailchimp, email, newsletter, signup, marketing, plugin, widget
|
4 |
+
Requires at least: 2.8
|
5 |
+
Tested up to: 3.0.1
|
6 |
+
Stable tag: 1.2
|
7 |
Author URI: http://www.mailchimp.com/api/
|
8 |
Plugin URI: http://www.mailchimp.com/plugins/mailchimp-wordpress-plugin/
|
9 |
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
+
The MailChimp plugin allows you to quickly and easily add a signup form for your MailChimp list as a widget on your WordPress 2.8 or higher site.
|
|
|
15 |
|
16 |
+
Not sure what [MailChimp](http://www.mailchimp.com/features/full_list/) is or if it will be helpful? Signup up for a [FREE Trial Account](http://www.mailchimp.com/signup/) and see for yourself!
|
|
|
17 |
|
18 |
+
After Installation, the setup page will guide you through entering your Login information, selecting your List from our Service, selecting options for the Merge Fields and Interest Groups you have setup, and then add the Widget to your site. The time from starting installation to have the form on your site should be less than 5 minutes - absolutely everything can be done via the Wordpress Setting GUI - no file editing at all!
|
|
|
|
|
|
|
19 |
|
20 |
+
You can also visit our [homepage for the plugin](http://www.mailchimp.com/plugins/mailchimp-wordpress-plugin/), but if you are reading this, you probably don't need to.
|
|
|
21 |
|
22 |
== Installation ==
|
23 |
|
24 |
This section describes how to install the plugin and get started using it.
|
25 |
|
26 |
+
= Version 2.8+ =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
1. Unzip our archive and upload the entire `mailchimp` directory to your `/wp-content/plugins/` directory
|
28 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
29 |
1. Go to Settings and look for "MailChimp Setup" in the menu
|
30 |
+
1. Enter your MailChimp API Key and let the plugin verify it.
|
31 |
1. Select One of your lists to have your visitors subscribe to.
|
32 |
1. (optionally) Turn on or off the Monkey Rewards option
|
33 |
1. (optionally) Turn your Merge Vars and Interest Groups `on` and `off`
|
34 |
+
1. Finally, go to Appearance->Widgets and drag the `MailChimp Widget` widget into one of your Widget Areas
|
35 |
1. And you are DONE!
|
36 |
|
37 |
= Advanced =
|
38 |
+
If you have a custom coded sidebar or something else special going on where you can't simply enable the widget through the Wordpress GUI, all you need to do is:
|
|
|
39 |
|
40 |
+
If you are using Wordpress v2.8 or higher, you can use the short-code:
|
41 |
+
` [mailchimpsf_form] `
|
42 |
|
43 |
If you are adding it inside a php code block, pop this in:
|
44 |
|
45 |
+
` mailchimpSF_signup_form(); `
|
46 |
|
47 |
Or, if you are dropping it in between a bunch of HTML, use this:
|
48 |
|
49 |
+
`<?php mailchimpSF_signup_form(); ?>`
|
50 |
|
51 |
Where ever you want it to show up.
|
52 |
|
54 |
http://wordpress.org/extend/plugins/exec-php/
|
55 |
|
56 |
|
57 |
+
== Upgrading ==
|
58 |
+
|
59 |
+
If you are upgrading to version 1.2 and you used the widget in your sidebar previously, all you need to do is drag the `MailChimp Widget` back into the sidebar, visit the MailChimp settings page (which will have maintained your prior settings), click the "Update List" button, and you're done!
|
60 |
|
61 |
== Internationalization (i18n) ==
|
62 |
Currently we have the plugin configured so it can be easily translated and the following languages supported:
|
69 |
* it_IT - Italian in Italy (thanks to [Stefan Des](http://www.stefandes.com) for contributing)
|
70 |
* ko_KR - Korean (thanks to 백선기 (SK Baek) for contributing)
|
71 |
* nb_NO - Norwegian (thanks to [Alexander Roterud aka Defrag](http://www.tigerpews.com) for contributing)
|
72 |
+
* nl_BE - Dutch (thanks to [Filip Stas](http://suddenelfilio.net/) for contributing)
|
|
|
73 |
* pt_BR - Portuguese in Brazil (thanks to Maria Manoela Porto for contributing)
|
74 |
* ru_RU - Russian in the Russian Federation (thanks to [Илья](http://fatcow.com) for contributing)
|
75 |
* sv_SE - Swedish in Sweden (thanks to [Sebastian Johnsson](http://www.agiley.se/) for contributing)
|
93 |
|
94 |
= Wait a minute, you want me to pay to try this? =
|
95 |
|
96 |
+
*Absolutely not!* We welcome you to come signup for a [FREE Trial Account](http://www.mailchimp.com/signup/) and 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 translation editor. [POedit](http://www.poedit.net/) works for us
|
102 |
+
3. Translate each line - if you need some context, just open up mailchimp.php or mailchimp_widget.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
|
104 |
|
105 |
|