Version Description
- January 24, 2014 =
Minor improvements and additions for compatibility with the MailChimp Sync plugin.
Download this release
Release Info
Developer | DvanKooten |
Plugin | MailChimp for WordPress |
Version | 2.2.3 |
Comparing to | |
See all releases |
Code changes from version 2.2.2 to 2.2.3
- assets/css/admin.css +15 -11
- assets/css/admin.min.css +1 -1
- includes/class-admin.php +9 -9
- includes/class-api.php +132 -59
- includes/class-form-manager.php +26 -17
- includes/class-widget.php +1 -1
- includes/integrations/class-integration.php +1 -1
- includes/views/api-settings.php +1 -1
- includes/views/checkbox-settings.php +1 -1
- includes/views/form-settings.php +1 -1
- includes/views/parts/admin-upgrade-to-pro.php +1 -1
- mailchimp-for-wp.php +2 -2
- readme.txt +23 -11
assets/css/admin.css
CHANGED
@@ -62,25 +62,29 @@
|
|
62 |
}
|
63 |
|
64 |
.pro-feature,
|
65 |
-
.mc4wp-settings tr.pro-feature th,
|
66 |
-
.mc4wp-settings tr.pro-feature td{
|
67 |
color:#aaa;
|
68 |
}
|
69 |
|
70 |
-
#mc4wp-admin
|
71 |
-
display:inline-block;
|
72 |
-
|
73 |
-
|
74 |
-
|
|
|
75 |
font-weight:bold;
|
76 |
}
|
|
|
|
|
|
|
77 |
|
78 |
-
#mc4wp-admin
|
79 |
-
background-color:
|
80 |
}
|
81 |
|
82 |
-
#mc4wp-admin
|
83 |
-
background
|
84 |
}
|
85 |
|
86 |
#mc4wp-admin table th{
|
62 |
}
|
63 |
|
64 |
.pro-feature,
|
65 |
+
.mc4wp-settings tr.pro-feature th,
|
66 |
+
.mc4wp-settings tr.pro-feature td{
|
67 |
color:#aaa;
|
68 |
}
|
69 |
|
70 |
+
#mc4wp-admin .status{
|
71 |
+
display:inline-block;
|
72 |
+
margin-left:1em;
|
73 |
+
padding:3px 6px;
|
74 |
+
color:white;
|
75 |
+
font-size:12px;
|
76 |
font-weight:bold;
|
77 |
}
|
78 |
+
#mc4wp-admin .positive{
|
79 |
+
background-color:limeGreen;
|
80 |
+
}
|
81 |
|
82 |
+
#mc4wp-admin .negative{
|
83 |
+
background-color: red;
|
84 |
}
|
85 |
|
86 |
+
#mc4wp-admin .neutral{
|
87 |
+
background: gray;
|
88 |
}
|
89 |
|
90 |
#mc4wp-admin table th{
|
assets/css/admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#mc4wp-content{float:left;width:65%}#mc4wp-sidebar{float:left;width:33%;margin-left:2%;border-left:1px solid #ccc;padding:0 0 0 2%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.valigntop{vertical-align:top!important}#mc4wp-admin .mc4wp-box{margin-bottom:20px}#mc4wp-upgrade-box{background:#222;color:#ddd;padding:20px}#mc4wp-upgrade-box h3{margin:0;color:#fff}#mc4wp-fw h4{margin-top:0}#mc4wp-fw p{margin-bottom:1em}#mc4wp-fw-fields{display:none}#mc4wp-fw-preview{font-family:"Courier New",Courier,monospace;min-height:200px;font-size:11px;background:#fff;z-index:99}#mc4wp-lists{margin:0}#mc4wp-lists input{margin-right:5px}.mc4wp-settings tr.pro-feature td,.mc4wp-settings tr.pro-feature th,.pro-feature{color:#aaa}#mc4wp-admin
|
1 |
+
#mc4wp-content{float:left;width:65%}#mc4wp-sidebar{float:left;width:33%;margin-left:2%;border-left:1px solid #ccc;padding:0 0 0 2%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.valigntop{vertical-align:top!important}#mc4wp-admin .mc4wp-box{margin-bottom:20px}#mc4wp-upgrade-box{background:#222;color:#ddd;padding:20px}#mc4wp-upgrade-box h3{margin:0;color:#fff}#mc4wp-fw h4{margin-top:0}#mc4wp-fw p{margin-bottom:1em}#mc4wp-fw-fields{display:none}#mc4wp-fw-preview{font-family:"Courier New",Courier,monospace;min-height:200px;font-size:11px;background:#fff;z-index:99}#mc4wp-lists{margin:0}#mc4wp-lists input{margin-right:5px}.mc4wp-settings tr.pro-feature td,.mc4wp-settings tr.pro-feature th,.pro-feature{color:#aaa}#mc4wp-admin .status{display:inline-block;margin-left:1em;padding:3px 6px;color:#fff;font-size:12px;font-weight:700}#mc4wp-admin .positive{background-color:#32cd32}#mc4wp-admin .negative{background-color:red}#mc4wp-admin .neutral{background:gray}#mc4wp-admin table th{text-align:left}#mc4wp-admin table.form-table tr td:first-child,#mc4wp-admin table.form-table tr th:first-child{padding-left:0}#mc4wp-admin td.nowrap{white-space:nowrap}#mc4wp-admin td.desc{font-style:italic;font-size:11px}.mc4wp-notice{padding:6px 8px;color:#31708f;background:#d9edf7;border:1px solid #bce8f1;margin:1em 0!important}#mc4wp-admin .mc4wp-col{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:50%;padding:0 5px}#mc4wp-admin .mc4wp-first{padding-left:0}#mc4wp-admin .mc4wp-last{padding-right:0}.mc4wp-well{background:#fff;padding:10px;border:1px solid #ccc}.mc4wp-title{font-size:1.4em;margin:1.6em 0 1em;padding:0 0 6px;border-bottom:1px solid #ddd}table.mc4wp-help,table.mc4wp-help td,table.mc4wp-help th{border:1px solid #ddd;border-collapse:collapse;font-size:12px}table.mc4wp-help td,table.mc4wp-help th{vertical-align:text-top;text-align:left;padding:5px 10px}table.mc4wp-help tr:hover{background-color:#ddd}#mc4wp-admin .wp-list-table code{float:right}@media(max-width:1279px){#mc4wp-content,#mc4wp-sidebar{float:none;width:100%;padding:0;margin:0}#mc4wp-sidebar{border-left:0;border-top:1px solid #ccc;margin-top:25px;padding-top:25px}#mc4wp-admin .wp-list-table code{float:none}}@media(max-width:719px){.mc4wp-hide-smallscreens{display:none}}
|
includes/class-admin.php
CHANGED
@@ -27,7 +27,7 @@ class MC4WP_Lite_Admin
|
|
27 |
$this->setup_hooks();
|
28 |
|
29 |
// did the user click on upgrade to pro link?
|
30 |
-
if( isset( $_GET['page'] ) && $_GET['page'] === '
|
31 |
wp_redirect( 'https://mc4wp.com/#utm_source=lite-plugin&utm_medium=link&utm_campaign=menu-upgrade-link' );
|
32 |
exit;
|
33 |
}
|
@@ -72,7 +72,7 @@ class MC4WP_Lite_Admin
|
|
72 |
}
|
73 |
|
74 |
// Hooks for Form settings page
|
75 |
-
if( isset( $_GET['page'] ) && $_GET['page'] === '
|
76 |
add_filter( 'quicktags_settings', array( $this, 'set_quicktags_buttons' ), 10, 2 );
|
77 |
}
|
78 |
|
@@ -130,7 +130,7 @@ class MC4WP_Lite_Admin
|
|
130 |
return $links;
|
131 |
}
|
132 |
|
133 |
-
$settings_link = '<a href="admin.php?page=
|
134 |
array_unshift( $links, $settings_link );
|
135 |
return $links;
|
136 |
}
|
@@ -166,11 +166,11 @@ class MC4WP_Lite_Admin
|
|
166 |
*/
|
167 |
$required_cap = apply_filters( 'mc4wp_settings_cap', 'manage_options' );
|
168 |
|
169 |
-
add_menu_page( 'MailChimp for WP Lite', 'MailChimp for WP', $required_cap, '
|
170 |
-
add_submenu_page( '
|
171 |
-
add_submenu_page( '
|
172 |
-
add_submenu_page( '
|
173 |
-
add_submenu_page( '
|
174 |
}
|
175 |
|
176 |
|
@@ -289,7 +289,7 @@ class MC4WP_Lite_Admin
|
|
289 |
public function load_css_and_js( $hook )
|
290 |
{
|
291 |
// only load asset files on the MailChimp for WordPress settings pages
|
292 |
-
if( false === isset( $_GET['page'] ) || false === stristr( $_GET['page'], '
|
293 |
return;
|
294 |
}
|
295 |
|
27 |
$this->setup_hooks();
|
28 |
|
29 |
// did the user click on upgrade to pro link?
|
30 |
+
if( isset( $_GET['page'] ) && $_GET['page'] === 'mailchimp-for-wp-upgrade' && false === headers_sent() ) {
|
31 |
wp_redirect( 'https://mc4wp.com/#utm_source=lite-plugin&utm_medium=link&utm_campaign=menu-upgrade-link' );
|
32 |
exit;
|
33 |
}
|
72 |
}
|
73 |
|
74 |
// Hooks for Form settings page
|
75 |
+
if( isset( $_GET['page'] ) && $_GET['page'] === 'mailchimp-for-wp-form-settings' ) {
|
76 |
add_filter( 'quicktags_settings', array( $this, 'set_quicktags_buttons' ), 10, 2 );
|
77 |
}
|
78 |
|
130 |
return $links;
|
131 |
}
|
132 |
|
133 |
+
$settings_link = '<a href="admin.php?page=mailchimp-for-wp">'. __( 'Settings', 'mailchimp-for-wp' ) . '</a>';
|
134 |
array_unshift( $links, $settings_link );
|
135 |
return $links;
|
136 |
}
|
166 |
*/
|
167 |
$required_cap = apply_filters( 'mc4wp_settings_cap', 'manage_options' );
|
168 |
|
169 |
+
add_menu_page( 'MailChimp for WP Lite', 'MailChimp for WP', $required_cap, 'mailchimp-for-wp', array($this, 'show_api_settings'), MC4WP_LITE_PLUGIN_URL . 'assets/img/menu-icon.png' );
|
170 |
+
add_submenu_page( 'mailchimp-for-wp', 'API Settings - MailChimp for WP Lite', __( 'MailChimp Settings', 'mailchimp-for-wp' ), $required_cap, 'mailchimp-for-wp', array( $this, 'show_api_settings' ) );
|
171 |
+
add_submenu_page( 'mailchimp-for-wp', 'Checkbox Settings - MailChimp for WP Lite', __( 'Checkboxes', 'mailchimp-for-wp' ), $required_cap, 'mailchimp-for-wp-checkbox-settings', array($this, 'show_checkbox_settings' ) );
|
172 |
+
add_submenu_page( 'mailchimp-for-wp', 'Form Settings - MailChimp for WP Lite', __( 'Forms', 'mailchimp-for-wp' ), $required_cap, 'mailchimp-for-wp-form-settings', array( $this, 'show_form_settings' ) );
|
173 |
+
add_submenu_page( 'mailchimp-for-wp', 'Upgrade to Pro - MailChimp for WP Lite', __( 'Upgrade to Pro', 'mailchimp-for-wp' ), $required_cap, 'mailchimp-for-wp-upgrade', array( $this, 'redirect_to_pro' ) );
|
174 |
}
|
175 |
|
176 |
|
289 |
public function load_css_and_js( $hook )
|
290 |
{
|
291 |
// only load asset files on the MailChimp for WordPress settings pages
|
292 |
+
if( false === isset( $_GET['page'] ) || false === stristr( $_GET['page'], 'mailchimp-for-wp' ) ) {
|
293 |
return;
|
294 |
}
|
295 |
|
includes/class-api.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
if( ! defined(
|
4 |
header( 'Status: 403 Forbidden' );
|
5 |
header( 'HTTP/1.1 403 Forbidden' );
|
6 |
exit;
|
@@ -33,26 +33,31 @@ class MC4WP_Lite_API {
|
|
33 |
*/
|
34 |
private $connected = null;
|
35 |
|
|
|
|
|
|
|
|
|
|
|
36 |
/**
|
37 |
* Constructor
|
38 |
*
|
39 |
* @param string $api_key MailChimp API key
|
40 |
*/
|
41 |
-
public function __construct( $api_key )
|
42 |
-
{
|
43 |
$this->api_key = $api_key;
|
44 |
-
$dash_position = strpos( $api_key, '-' );
|
45 |
|
|
|
46 |
if( $dash_position !== false ) {
|
47 |
$this->api_url = 'https://' . substr( $api_key, $dash_position + 1 ) . '.api.mailchimp.com/2.0/';
|
48 |
}
|
49 |
}
|
50 |
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
|
|
56 |
private function show_error( $message ) {
|
57 |
|
58 |
if( ! is_admin() || ! current_user_can( 'manage_options' ) ) {
|
@@ -60,6 +65,7 @@ class MC4WP_Lite_API {
|
|
60 |
}
|
61 |
|
62 |
add_settings_error( 'mc4wp-api', 'mc4wp-api-error', $message, 'error' );
|
|
|
63 |
}
|
64 |
|
65 |
/**
|
@@ -68,8 +74,7 @@ class MC4WP_Lite_API {
|
|
68 |
*
|
69 |
* @return boolean
|
70 |
*/
|
71 |
-
public function is_connected()
|
72 |
-
{
|
73 |
if( $this->connected === null ) {
|
74 |
|
75 |
$this->connected = false;
|
@@ -102,8 +107,7 @@ class MC4WP_Lite_API {
|
|
102 |
*
|
103 |
* @return boolean|string True if success, 'error' if error
|
104 |
*/
|
105 |
-
public function subscribe( $list_id, $email, array $merge_vars = array(), $email_type = 'html', $double_optin = true, $update_existing = false, $replace_interests = true, $send_welcome = false )
|
106 |
-
{
|
107 |
$data = array(
|
108 |
'id' => $list_id,
|
109 |
'email' => array( 'email' => $email),
|
@@ -115,22 +119,22 @@ class MC4WP_Lite_API {
|
|
115 |
'send_welcome' => $send_welcome
|
116 |
);
|
117 |
|
118 |
-
$
|
119 |
|
120 |
-
if( is_object( $
|
121 |
|
122 |
-
if(
|
123 |
-
return true;
|
124 |
-
} else {
|
125 |
|
126 |
// check error
|
127 |
-
if( (int) $
|
128 |
-
return 'already_subscribed';
|
129 |
-
}
|
130 |
-
|
131 |
// store error message
|
132 |
-
$this->error_message = $
|
133 |
return 'error';
|
|
|
|
|
134 |
}
|
135 |
|
136 |
}
|
@@ -143,8 +147,7 @@ class MC4WP_Lite_API {
|
|
143 |
* @param string $list_id
|
144 |
* @return array|boolean
|
145 |
*/
|
146 |
-
public function get_list_groupings( $list_id )
|
147 |
-
{
|
148 |
$result = $this->call( 'lists/interest-groupings', array( 'id' => $list_id ) );
|
149 |
|
150 |
if( is_array( $result ) ) {
|
@@ -157,10 +160,9 @@ class MC4WP_Lite_API {
|
|
157 |
/**
|
158 |
* @param array $list_ids Array of ID's of the lists to fetch. (optional)
|
159 |
*
|
160 |
-
* @return bool
|
161 |
*/
|
162 |
-
public function get_lists( $list_ids = array() )
|
163 |
-
{
|
164 |
$args = array(
|
165 |
'limit' => 100
|
166 |
);
|
@@ -183,11 +185,11 @@ class MC4WP_Lite_API {
|
|
183 |
|
184 |
/**
|
185 |
* Get lists with their merge_vars for a given array of list id's
|
|
|
186 |
* @param array $list_ids
|
187 |
* @return array|boolean
|
188 |
*/
|
189 |
-
public function get_lists_with_merge_vars( $list_ids )
|
190 |
-
{
|
191 |
$result = $this->call( 'lists/merge-vars', array('id' => $list_ids ) );
|
192 |
|
193 |
if( is_object( $result ) && isset( $result->data ) ) {
|
@@ -202,10 +204,14 @@ class MC4WP_Lite_API {
|
|
202 |
*
|
203 |
* @param string $list_id
|
204 |
* @param array $emails
|
205 |
-
* @return array
|
206 |
*/
|
207 |
-
public function
|
208 |
-
$result = $this->call( 'lists/member-info', array(
|
|
|
|
|
|
|
|
|
209 |
|
210 |
if( is_object( $result ) && isset( $result->data ) ) {
|
211 |
return $result->data;
|
@@ -214,6 +220,47 @@ class MC4WP_Lite_API {
|
|
214 |
return false;
|
215 |
}
|
216 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
/**
|
218 |
* Checks if an email address is on a given list
|
219 |
*
|
@@ -222,41 +269,52 @@ class MC4WP_Lite_API {
|
|
222 |
* @return boolean
|
223 |
*/
|
224 |
public function list_has_subscriber( $list_id, $email ) {
|
225 |
-
$member_info = $this->
|
226 |
|
227 |
if( is_array( $member_info ) && isset( $member_info[0] ) ) {
|
228 |
-
return ( $member_info[0]->status
|
229 |
}
|
230 |
|
231 |
return false;
|
232 |
}
|
233 |
|
234 |
/**
|
235 |
-
* Unsubscribes the given email from the given MailChimp list
|
236 |
*
|
237 |
-
* @param string
|
238 |
-
* @param string $
|
|
|
|
|
|
|
239 |
*
|
240 |
* @return bool
|
241 |
*/
|
242 |
-
public function unsubscribe( $list_id, $
|
243 |
|
244 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
'id' => $list_id,
|
246 |
-
'email' =>
|
247 |
-
|
248 |
-
|
|
|
249 |
)
|
250 |
);
|
251 |
|
252 |
-
if( is_object( $
|
253 |
|
254 |
-
if ( isset( $
|
255 |
return true;
|
256 |
}
|
257 |
|
258 |
-
if( isset( $
|
259 |
-
$this->error_message = $
|
260 |
}
|
261 |
}
|
262 |
|
@@ -273,8 +331,7 @@ class MC4WP_Lite_API {
|
|
273 |
*
|
274 |
* @return object
|
275 |
*/
|
276 |
-
public function call( $method, array $data = array() )
|
277 |
-
{
|
278 |
// do not make request when no api key was provided.
|
279 |
if( empty( $this->api_key ) ) {
|
280 |
return false;
|
@@ -304,27 +361,43 @@ class MC4WP_Lite_API {
|
|
304 |
'msg' => "Everything's Chimpy!"
|
305 |
);
|
306 |
}
|
307 |
-
|
308 |
$body = wp_remote_retrieve_body( $response );
|
309 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
}
|
311 |
|
312 |
/**
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
{
|
318 |
return ( ! empty( $this->error_message ) );
|
319 |
}
|
320 |
|
321 |
/**
|
322 |
-
*
|
|
|
323 |
* @return string
|
324 |
*/
|
325 |
-
public function get_error_message()
|
326 |
-
{
|
327 |
return $this->error_message;
|
328 |
}
|
329 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
330 |
}
|
1 |
<?php
|
2 |
|
3 |
+
if( ! defined( 'MC4WP_LITE_VERSION' ) ) {
|
4 |
header( 'Status: 403 Forbidden' );
|
5 |
header( 'HTTP/1.1 403 Forbidden' );
|
6 |
exit;
|
33 |
*/
|
34 |
private $connected = null;
|
35 |
|
36 |
+
/**
|
37 |
+
* @var object The full response object of the latest API call
|
38 |
+
*/
|
39 |
+
private $last_response;
|
40 |
+
|
41 |
/**
|
42 |
* Constructor
|
43 |
*
|
44 |
* @param string $api_key MailChimp API key
|
45 |
*/
|
46 |
+
public function __construct( $api_key ) {
|
|
|
47 |
$this->api_key = $api_key;
|
|
|
48 |
|
49 |
+
$dash_position = strpos( $api_key, '-' );
|
50 |
if( $dash_position !== false ) {
|
51 |
$this->api_url = 'https://' . substr( $api_key, $dash_position + 1 ) . '.api.mailchimp.com/2.0/';
|
52 |
}
|
53 |
}
|
54 |
|
55 |
+
/**
|
56 |
+
* Show an error message to administrators
|
57 |
+
*
|
58 |
+
* @param string $message
|
59 |
+
* @return bool
|
60 |
+
*/
|
61 |
private function show_error( $message ) {
|
62 |
|
63 |
if( ! is_admin() || ! current_user_can( 'manage_options' ) ) {
|
65 |
}
|
66 |
|
67 |
add_settings_error( 'mc4wp-api', 'mc4wp-api-error', $message, 'error' );
|
68 |
+
return true;
|
69 |
}
|
70 |
|
71 |
/**
|
74 |
*
|
75 |
* @return boolean
|
76 |
*/
|
77 |
+
public function is_connected() {
|
|
|
78 |
if( $this->connected === null ) {
|
79 |
|
80 |
$this->connected = false;
|
107 |
*
|
108 |
* @return boolean|string True if success, 'error' if error
|
109 |
*/
|
110 |
+
public function subscribe( $list_id, $email, array $merge_vars = array(), $email_type = 'html', $double_optin = true, $update_existing = false, $replace_interests = true, $send_welcome = false ) {
|
|
|
111 |
$data = array(
|
112 |
'id' => $list_id,
|
113 |
'email' => array( 'email' => $email),
|
119 |
'send_welcome' => $send_welcome
|
120 |
);
|
121 |
|
122 |
+
$response = $this->call( 'lists/subscribe', $data );
|
123 |
|
124 |
+
if( is_object( $response ) ) {
|
125 |
|
126 |
+
if( isset( $response->error ) ) {
|
|
|
|
|
127 |
|
128 |
// check error
|
129 |
+
if( (int) $response->code === 214 ) {
|
130 |
+
return 'already_subscribed';
|
131 |
+
}
|
132 |
+
|
133 |
// store error message
|
134 |
+
$this->error_message = $response->error;
|
135 |
return 'error';
|
136 |
+
} else {
|
137 |
+
return true;
|
138 |
}
|
139 |
|
140 |
}
|
147 |
* @param string $list_id
|
148 |
* @return array|boolean
|
149 |
*/
|
150 |
+
public function get_list_groupings( $list_id ) {
|
|
|
151 |
$result = $this->call( 'lists/interest-groupings', array( 'id' => $list_id ) );
|
152 |
|
153 |
if( is_array( $result ) ) {
|
160 |
/**
|
161 |
* @param array $list_ids Array of ID's of the lists to fetch. (optional)
|
162 |
*
|
163 |
+
* @return array|bool
|
164 |
*/
|
165 |
+
public function get_lists( $list_ids = array() ) {
|
|
|
166 |
$args = array(
|
167 |
'limit' => 100
|
168 |
);
|
185 |
|
186 |
/**
|
187 |
* Get lists with their merge_vars for a given array of list id's
|
188 |
+
*
|
189 |
* @param array $list_ids
|
190 |
* @return array|boolean
|
191 |
*/
|
192 |
+
public function get_lists_with_merge_vars( $list_ids ) {
|
|
|
193 |
$result = $this->call( 'lists/merge-vars', array('id' => $list_ids ) );
|
194 |
|
195 |
if( is_object( $result ) && isset( $result->data ) ) {
|
204 |
*
|
205 |
* @param string $list_id
|
206 |
* @param array $emails
|
207 |
+
* @return array|bool
|
208 |
*/
|
209 |
+
public function get_subscriber_info( $list_id, $emails ) {
|
210 |
+
$result = $this->call( 'lists/member-info', array(
|
211 |
+
'id' => $list_id,
|
212 |
+
'emails' => $emails
|
213 |
+
)
|
214 |
+
);
|
215 |
|
216 |
if( is_object( $result ) && isset( $result->data ) ) {
|
217 |
return $result->data;
|
220 |
return false;
|
221 |
}
|
222 |
|
223 |
+
/**
|
224 |
+
* @param $list_id
|
225 |
+
* @param array|string $email
|
226 |
+
* @param array $merge_vars
|
227 |
+
* @param string $email_type
|
228 |
+
* @param bool $replace_interests
|
229 |
+
*
|
230 |
+
* @return bool
|
231 |
+
*/
|
232 |
+
public function update_subscriber( $list_id, $email, $merge_vars = array(), $email_type = 'html', $replace_interests = false ) {
|
233 |
+
|
234 |
+
// default to using email for updating
|
235 |
+
if( ! is_array( $email ) ) {
|
236 |
+
$email = array(
|
237 |
+
'email' => $email
|
238 |
+
);
|
239 |
+
}
|
240 |
+
|
241 |
+
$result = $this->call( 'lists/update-member', array(
|
242 |
+
'id' => $list_id,
|
243 |
+
'email' => $email,
|
244 |
+
'merge_vars' => $merge_vars,
|
245 |
+
'email_type' => $email_type,
|
246 |
+
'replace_interests' => $replace_interests
|
247 |
+
)
|
248 |
+
);
|
249 |
+
|
250 |
+
if( is_object( $result ) ) {
|
251 |
+
|
252 |
+
if( isset( $result->error ) ) {
|
253 |
+
$this->error_message = $result->error;
|
254 |
+
return false;
|
255 |
+
} else {
|
256 |
+
return true;
|
257 |
+
}
|
258 |
+
|
259 |
+
}
|
260 |
+
|
261 |
+
return false;
|
262 |
+
}
|
263 |
+
|
264 |
/**
|
265 |
* Checks if an email address is on a given list
|
266 |
*
|
269 |
* @return boolean
|
270 |
*/
|
271 |
public function list_has_subscriber( $list_id, $email ) {
|
272 |
+
$member_info = $this->get_subscriber_info( $list_id, array( array( 'email' => $email ) ) );
|
273 |
|
274 |
if( is_array( $member_info ) && isset( $member_info[0] ) ) {
|
275 |
+
return ( $member_info[0]->status === "subscribed" );
|
276 |
}
|
277 |
|
278 |
return false;
|
279 |
}
|
280 |
|
281 |
/**
|
282 |
+
* Unsubscribes the given email or luid from the given MailChimp list
|
283 |
*
|
284 |
+
* @param string $list_id
|
285 |
+
* @param array|string $struct
|
286 |
+
* @param bool $delete_member
|
287 |
+
* @param bool $send_goodbye
|
288 |
+
* @param bool $send_notification
|
289 |
*
|
290 |
* @return bool
|
291 |
*/
|
292 |
+
public function unsubscribe( $list_id, $struct, $send_goodbye = true, $send_notification = false, $delete_member = false ) {
|
293 |
|
294 |
+
if( ! is_array( $struct ) ) {
|
295 |
+
// assume $struct is an email
|
296 |
+
$struct = array(
|
297 |
+
'email' => $struct
|
298 |
+
);
|
299 |
+
}
|
300 |
+
|
301 |
+
$response = $this->call( 'lists/unsubscribe', array(
|
302 |
'id' => $list_id,
|
303 |
+
'email' => $struct,
|
304 |
+
'delete_member' => $delete_member,
|
305 |
+
'send_goodbye' => $send_goodbye,
|
306 |
+
'send_notify' => $send_notification
|
307 |
)
|
308 |
);
|
309 |
|
310 |
+
if( is_object( $response ) ) {
|
311 |
|
312 |
+
if ( isset( $response->complete ) && $response->complete ) {
|
313 |
return true;
|
314 |
}
|
315 |
|
316 |
+
if( isset( $response->error ) ) {
|
317 |
+
$this->error_message = $response->error;
|
318 |
}
|
319 |
}
|
320 |
|
331 |
*
|
332 |
* @return object
|
333 |
*/
|
334 |
+
public function call( $method, array $data = array() ) {
|
|
|
335 |
// do not make request when no api key was provided.
|
336 |
if( empty( $this->api_key ) ) {
|
337 |
return false;
|
361 |
'msg' => "Everything's Chimpy!"
|
362 |
);
|
363 |
}
|
364 |
+
|
365 |
$body = wp_remote_retrieve_body( $response );
|
366 |
+
$response = json_decode( $body );
|
367 |
+
|
368 |
+
// store response
|
369 |
+
if( is_object( $response ) ) {
|
370 |
+
$this->last_response = $response;
|
371 |
+
}
|
372 |
+
|
373 |
+
return $response;
|
374 |
}
|
375 |
|
376 |
/**
|
377 |
+
* Checks if an error occurred in the most recent API request
|
378 |
+
*
|
379 |
+
* @return bool
|
380 |
+
*/
|
381 |
+
public function has_error() {
|
382 |
return ( ! empty( $this->error_message ) );
|
383 |
}
|
384 |
|
385 |
/**
|
386 |
+
* Get the most recent error message
|
387 |
+
*
|
388 |
* @return string
|
389 |
*/
|
390 |
+
public function get_error_message() {
|
|
|
391 |
return $this->error_message;
|
392 |
}
|
393 |
|
394 |
+
/**
|
395 |
+
* Get the most recent response object
|
396 |
+
*
|
397 |
+
* @return object
|
398 |
+
*/
|
399 |
+
public function get_last_response() {
|
400 |
+
return $this->last_response;
|
401 |
+
}
|
402 |
+
|
403 |
}
|
includes/class-form-manager.php
CHANGED
@@ -149,24 +149,35 @@ class MC4WP_Lite_Form_Manager {
|
|
149 |
// was this form submitted?
|
150 |
$was_submitted = ( is_object( $this->form_request ) && $this->form_request->get_form_instance_number() === $this->form_instance_number );
|
151 |
|
152 |
-
/**
|
153 |
-
* @filter mc4wp_form_action
|
154 |
-
* @expects string
|
155 |
-
*
|
156 |
-
* Sets the `action` attribute of the form element. Defaults to the current URL.
|
157 |
-
*/
|
158 |
-
$form_action = apply_filters( 'mc4wp_form_action', mc4wp_get_current_url() );
|
159 |
-
|
160 |
// Generate opening HTML
|
161 |
$opening_html = "<!-- Form by MailChimp for WordPress plugin v". MC4WP_LITE_VERSION ." - https://mc4wp.com/ -->";
|
162 |
-
$opening_html .= '<
|
163 |
|
164 |
// Generate before & after fields HTML
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
$before_fields = apply_filters( 'mc4wp_form_before_fields', '' );
|
166 |
$after_fields = apply_filters( 'mc4wp_form_after_fields', '' );
|
167 |
|
168 |
// Process fields, if not submitted or not successfull or hide_after_success disabled
|
169 |
if( ! $was_submitted || ! $opts['hide_after_success'] || ! $this->form_request->is_successful() ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
// add form fields from settings
|
171 |
$visible_fields = __( $opts['markup'], 'mailchimp-for-wp' );
|
172 |
|
@@ -194,9 +205,8 @@ class MC4WP_Lite_Form_Manager {
|
|
194 |
$hidden_fields .= '<input type="hidden" name="_mc4wp_form_submit" value="1" />';
|
195 |
$hidden_fields .= '<input type="hidden" name="_mc4wp_form_instance" value="'. $this->form_instance_number .'" />';
|
196 |
$hidden_fields .= '<input type="hidden" name="_mc4wp_form_nonce" value="'. wp_create_nonce( '_mc4wp_form_nonce' ) .'" />';
|
197 |
-
|
198 |
-
$
|
199 |
-
$hidden_fields = '';
|
200 |
}
|
201 |
|
202 |
// empty string for response
|
@@ -230,11 +240,11 @@ class MC4WP_Lite_Form_Manager {
|
|
230 |
|
231 |
switch( $message_position ) {
|
232 |
case 'before':
|
233 |
-
$
|
234 |
break;
|
235 |
|
236 |
case 'after':
|
237 |
-
$
|
238 |
break;
|
239 |
}
|
240 |
}
|
@@ -245,8 +255,7 @@ class MC4WP_Lite_Form_Manager {
|
|
245 |
$visible_fields = str_ireplace( '{response}', $response_html, $visible_fields );
|
246 |
|
247 |
// Generate closing HTML
|
248 |
-
$closing_html = "</
|
249 |
-
$closing_html .= "<!-- / MailChimp for WP Plugin -->";
|
250 |
|
251 |
// increase form instance number in case there is more than one form on a page
|
252 |
$this->form_instance_number++;
|
@@ -261,7 +270,7 @@ class MC4WP_Lite_Form_Manager {
|
|
261 |
add_action( 'wp_footer', array( $this, 'print_js' ) );
|
262 |
|
263 |
// concatenate and return the HTML parts
|
264 |
-
return $opening_html . $before_fields . $visible_fields . $hidden_fields . $after_fields . $closing_html;
|
265 |
}
|
266 |
|
267 |
/**
|
149 |
// was this form submitted?
|
150 |
$was_submitted = ( is_object( $this->form_request ) && $this->form_request->get_form_instance_number() === $this->form_instance_number );
|
151 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
// Generate opening HTML
|
153 |
$opening_html = "<!-- Form by MailChimp for WordPress plugin v". MC4WP_LITE_VERSION ." - https://mc4wp.com/ -->";
|
154 |
+
$opening_html .= '<div id="mc4wp-form-' . $this->form_instance_number . '" class="' . $this->get_css_classes() . '">';
|
155 |
|
156 |
// Generate before & after fields HTML
|
157 |
+
$before_form = apply_filters( 'mc4wp_form_before_form', '' );
|
158 |
+
$after_form = apply_filters( 'mc4wp_form_after_form', '' );
|
159 |
+
|
160 |
+
$form_opening_html = '';
|
161 |
+
$form_closing_html = '';
|
162 |
+
|
163 |
+
$visible_fields = '';
|
164 |
+
$hidden_fields = '';
|
165 |
+
|
166 |
$before_fields = apply_filters( 'mc4wp_form_before_fields', '' );
|
167 |
$after_fields = apply_filters( 'mc4wp_form_after_fields', '' );
|
168 |
|
169 |
// Process fields, if not submitted or not successfull or hide_after_success disabled
|
170 |
if( ! $was_submitted || ! $opts['hide_after_success'] || ! $this->form_request->is_successful() ) {
|
171 |
+
|
172 |
+
/**
|
173 |
+
* @filter mc4wp_form_action
|
174 |
+
* @expects string
|
175 |
+
*
|
176 |
+
* Sets the `action` attribute of the form element. Defaults to the current URL.
|
177 |
+
*/
|
178 |
+
$form_action = apply_filters( 'mc4wp_form_action', mc4wp_get_current_url() );
|
179 |
+
$form_opening_html = '<form method="post" action="'. $form_action .'">';
|
180 |
+
|
181 |
// add form fields from settings
|
182 |
$visible_fields = __( $opts['markup'], 'mailchimp-for-wp' );
|
183 |
|
205 |
$hidden_fields .= '<input type="hidden" name="_mc4wp_form_submit" value="1" />';
|
206 |
$hidden_fields .= '<input type="hidden" name="_mc4wp_form_instance" value="'. $this->form_instance_number .'" />';
|
207 |
$hidden_fields .= '<input type="hidden" name="_mc4wp_form_nonce" value="'. wp_create_nonce( '_mc4wp_form_nonce' ) .'" />';
|
208 |
+
|
209 |
+
$form_closing_html = '</form>';
|
|
|
210 |
}
|
211 |
|
212 |
// empty string for response
|
240 |
|
241 |
switch( $message_position ) {
|
242 |
case 'before':
|
243 |
+
$before_form = $before_form . $response_html;
|
244 |
break;
|
245 |
|
246 |
case 'after':
|
247 |
+
$after_form = $response_html . $after_form;
|
248 |
break;
|
249 |
}
|
250 |
}
|
255 |
$visible_fields = str_ireplace( '{response}', $response_html, $visible_fields );
|
256 |
|
257 |
// Generate closing HTML
|
258 |
+
$closing_html = "</div><!-- / MailChimp for WP Plugin -->";
|
|
|
259 |
|
260 |
// increase form instance number in case there is more than one form on a page
|
261 |
$this->form_instance_number++;
|
270 |
add_action( 'wp_footer', array( $this, 'print_js' ) );
|
271 |
|
272 |
// concatenate and return the HTML parts
|
273 |
+
return $opening_html . $before_form . $form_opening_html . $before_fields . $visible_fields . $hidden_fields . $after_fields . $form_closing_html . $after_form . $closing_html;
|
274 |
}
|
275 |
|
276 |
/**
|
includes/class-widget.php
CHANGED
@@ -70,7 +70,7 @@ class MC4WP_Lite_Widget extends WP_Widget {
|
|
70 |
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
|
71 |
</p>
|
72 |
<p class="help">
|
73 |
-
<?php printf( __( 'You can edit your sign-up form in the %sMailChimp for WordPress form settings%s.', 'mailchimp-for-wp' ), '<a href="' . admin_url('admin.php?page=
|
74 |
</p>
|
75 |
<?php
|
76 |
}
|
70 |
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
|
71 |
</p>
|
72 |
<p class="help">
|
73 |
+
<?php printf( __( 'You can edit your sign-up form in the %sMailChimp for WordPress form settings%s.', 'mailchimp-for-wp' ), '<a href="' . admin_url('admin.php?page=mailchimp-for-wp-form-settings') . '">', '</a>' ); ?>
|
74 |
</p>
|
75 |
<?php
|
76 |
}
|
includes/integrations/class-integration.php
CHANGED
@@ -231,7 +231,7 @@ abstract class MC4WP_Integration {
|
|
231 |
if( $this->show_error_messages() ) {
|
232 |
wp_die(
|
233 |
'<h3>' . __( 'MailChimp for WordPress - Error', 'mailchimp-for-wp' ) . '</h3>' .
|
234 |
-
'<p>' . sprintf( __( 'Please select a list to subscribe to in the <a href="%s">checkbox settings</a>.', 'mailchimp-for-wp' ), admin_url( 'admin.php?page=
|
235 |
'<p style="font-style:italic; font-size:12px;">' . __( 'This message is only visible to administrators for debugging purposes.', 'mailchimp-for-wp' ) . '</p>',
|
236 |
__( 'MailChimp for WordPress - Error', 'mailchimp-for-wp' ),
|
237 |
array( 'back_link' => true )
|
231 |
if( $this->show_error_messages() ) {
|
232 |
wp_die(
|
233 |
'<h3>' . __( 'MailChimp for WordPress - Error', 'mailchimp-for-wp' ) . '</h3>' .
|
234 |
+
'<p>' . sprintf( __( 'Please select a list to subscribe to in the <a href="%s">checkbox settings</a>.', 'mailchimp-for-wp' ), admin_url( 'admin.php?page=mailchimp-for-wp-checkbox-settings' ) ) . '</p>' .
|
235 |
'<p style="font-style:italic; font-size:12px;">' . __( 'This message is only visible to administrators for debugging purposes.', 'mailchimp-for-wp' ) . '</p>',
|
236 |
__( 'MailChimp for WordPress - Error', 'mailchimp-for-wp' ),
|
237 |
array( 'back_link' => true )
|
includes/views/api-settings.php
CHANGED
@@ -23,7 +23,7 @@ if( ! defined("MC4WP_LITE_VERSION") ) {
|
|
23 |
<?php if($connected) { ?>
|
24 |
<span class="status positive"><?php _e( 'CONNECTED' ,'mailchimp-for-wp' ); ?></span>
|
25 |
<?php } else { ?>
|
26 |
-
<span class="status
|
27 |
<?php } ?>
|
28 |
</h3>
|
29 |
<table class="form-table">
|
23 |
<?php if($connected) { ?>
|
24 |
<span class="status positive"><?php _e( 'CONNECTED' ,'mailchimp-for-wp' ); ?></span>
|
25 |
<?php } else { ?>
|
26 |
+
<span class="status neutral"><?php _e( 'NOT CONNECTED', 'mailchimp-for-wp' ); ?></span>
|
27 |
<?php } ?>
|
28 |
</h3>
|
29 |
<table class="form-table">
|
includes/views/checkbox-settings.php
CHANGED
@@ -32,7 +32,7 @@ if( ! defined("MC4WP_LITE_VERSION") ) {
|
|
32 |
|
33 |
<?php // loop through lists
|
34 |
if( ! $lists || empty( $lists ) ) {
|
35 |
-
?><td colspan="2"><?php printf( __( 'No lists found, %sare you connected to MailChimp?%s', 'mailchimp-for-wp' ), '<a href="'. admin_url( 'admin.php?page=
|
36 |
} else { ?>
|
37 |
<td class="nowrap">
|
38 |
<?php foreach( $lists as $list ) {
|
32 |
|
33 |
<?php // loop through lists
|
34 |
if( ! $lists || empty( $lists ) ) {
|
35 |
+
?><td colspan="2"><?php printf( __( 'No lists found, %sare you connected to MailChimp?%s', 'mailchimp-for-wp' ), '<a href="'. admin_url( 'admin.php?page=mailchimp-for-wp' ) .'">', '</a>' ); ?></td><?php
|
36 |
} else { ?>
|
37 |
<td class="nowrap">
|
38 |
<?php foreach( $lists as $list ) {
|
includes/views/form-settings.php
CHANGED
@@ -45,7 +45,7 @@ if( ! defined("MC4WP_LITE_VERSION") ) {
|
|
45 |
<th scope="row"><?php _e( 'Lists this form subscribes to', 'mailchimp-for-wp' ); ?></th>
|
46 |
<?php // loop through lists
|
47 |
if( empty( $lists ) ) {
|
48 |
-
?><td colspan="2"><?php printf( __( 'No lists found, %sare you connected to MailChimp?%s', 'mailchimp-for-wp' ), '<a href="'. admin_url( 'admin.php?page=
|
49 |
} else { ?>
|
50 |
<td>
|
51 |
|
45 |
<th scope="row"><?php _e( 'Lists this form subscribes to', 'mailchimp-for-wp' ); ?></th>
|
46 |
<?php // loop through lists
|
47 |
if( empty( $lists ) ) {
|
48 |
+
?><td colspan="2"><?php printf( __( 'No lists found, %sare you connected to MailChimp?%s', 'mailchimp-for-wp' ), '<a href="'. admin_url( 'admin.php?page=mailchimp-for-wp' ) .'">', '</a>' ); ?></td><?php
|
49 |
} else { ?>
|
50 |
<td>
|
51 |
|
includes/views/parts/admin-upgrade-to-pro.php
CHANGED
@@ -10,5 +10,5 @@ if( ! defined("MC4WP_LITE_VERSION") ) {
|
|
10 |
|
11 |
<p><em><?php _e( 'This plugin has an even better premium version, I am sure you will love it.', 'mailchimp-for-wp' ); ?></em></p>
|
12 |
<p><?php _e( 'Pro features include better and multiple forms, advanced and easy form styling, more default themes, detailed statistics and priority support.', 'mailchimp-for-wp' ); ?></p>
|
13 |
-
<p><a class="button-primary" href="https://mc4wp.com/#utm_source=lite-plugin&utm_medium=link&utm_campaign=upgrade-box"><?php _e( 'Upgrade Now', 'mailchimp-for-wp' ); ?> »</a></p>
|
14 |
</div>
|
10 |
|
11 |
<p><em><?php _e( 'This plugin has an even better premium version, I am sure you will love it.', 'mailchimp-for-wp' ); ?></em></p>
|
12 |
<p><?php _e( 'Pro features include better and multiple forms, advanced and easy form styling, more default themes, detailed statistics and priority support.', 'mailchimp-for-wp' ); ?></p>
|
13 |
+
<p><a class="button button-primary button-large" href="https://mc4wp.com/#utm_source=lite-plugin&utm_medium=link&utm_campaign=upgrade-box"><?php _e( 'Upgrade Now', 'mailchimp-for-wp' ); ?> »</a></p>
|
14 |
</div>
|
mailchimp-for-wp.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: MailChimp for WordPress Lite
|
4 |
Plugin URI: https://mc4wp.com/
|
5 |
Description: Lite version of MailChimp for WordPress. Adds various sign-up methods to your website.
|
6 |
-
Version: 2.2.
|
7 |
Author: Danny van Kooten
|
8 |
Author URI: https://dannyvankooten.com
|
9 |
Text Domain: mailchimp-for-wp
|
@@ -47,7 +47,7 @@ function mc4wp_load_plugin() {
|
|
47 |
}
|
48 |
|
49 |
// bootstrap the lite plugin
|
50 |
-
define( 'MC4WP_LITE_VERSION', '2.2.
|
51 |
define( 'MC4WP_LITE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
52 |
define( 'MC4WP_LITE_PLUGIN_URL', plugins_url( '/' , __FILE__ ) );
|
53 |
define( 'MC4WP_LITE_PLUGIN_FILE', __FILE__ );
|
3 |
Plugin Name: MailChimp for WordPress Lite
|
4 |
Plugin URI: https://mc4wp.com/
|
5 |
Description: Lite version of MailChimp for WordPress. Adds various sign-up methods to your website.
|
6 |
+
Version: 2.2.3
|
7 |
Author: Danny van Kooten
|
8 |
Author URI: https://dannyvankooten.com
|
9 |
Text Domain: mailchimp-for-wp
|
47 |
}
|
48 |
|
49 |
// bootstrap the lite plugin
|
50 |
+
define( 'MC4WP_LITE_VERSION', '2.2.3' );
|
51 |
define( 'MC4WP_LITE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
52 |
define( 'MC4WP_LITE_PLUGIN_URL', plugins_url( '/' , __FILE__ ) );
|
53 |
define( 'MC4WP_LITE_PLUGIN_FILE', __FILE__ );
|
readme.txt
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
=== MailChimp for WordPress ===
|
2 |
Contributors: DvanKooten
|
3 |
Donate link: https://mc4wp.com/
|
4 |
-
Tags:
|
5 |
Requires at least: 3.6
|
6 |
-
Tested up to: 4.1
|
7 |
-
Stable tag: 2.2.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
-
The best MailChimp plugin to get more email subscribers. Easily add sign-up forms and sign-up checkboxes to your WordPress
|
12 |
|
13 |
== Description ==
|
14 |
|
@@ -16,13 +16,13 @@ The best MailChimp plugin to get more email subscribers. Easily add sign-up form
|
|
16 |
|
17 |
*Adding sign-up methods for your MailChimp lists to your WordPress site should be easy. With this plugin, it finally is.*
|
18 |
|
19 |
-
MailChimp for WordPress lets you create a highly customizable sign-up form which you can display wherever you want it to display using a simple shortcode, widget or template function.
|
20 |
|
21 |
-
= Sign-Up Forms =
|
22 |
Easily create sign-up forms for your MailChimp list and display it using a simple shortcode, a widget or PHP function.
|
23 |
|
24 |
= Sign-Up Checkboxes =
|
25 |
-
Add sign-up checkboxes to *any* form on your website. The plugin offers built-in integration with comment forms, registration forms, Contact Form 7, BuddyPress, bbPress and WordPress MultiSite.
|
26 |
|
27 |
**MailChimp for WordPress, at a glance..**
|
28 |
|
@@ -45,6 +45,13 @@ Add sign-up checkboxes to *any* form on your website. The plugin offers built-in
|
|
45 |
>
|
46 |
> [Upgrade to MailChimp for WordPress Pro](https://mc4wp.com/features/#utm_source=wp-plugin-repo&utm_medium=link&utm_campaign=after-features-link)
|
47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
**Translations**
|
49 |
|
50 |
New or improved [translations of the MailChimp for WordPress plugin are welcomed on Transifex](https://www.transifex.com/projects/p/mailchimp-for-wordpress/).
|
@@ -253,17 +260,21 @@ It's easy to translate the plugin into your own language. Head over to the [tran
|
|
253 |
|
254 |
== Screenshots ==
|
255 |
|
256 |
-
1. Simple or advanced sign-up forms that blend in with your theme.
|
257 |
2. A sign-up checkbox in your comment form is an amazing conversion booster.
|
258 |
3. A simple form in the footer of the Twenty Thirteen theme.
|
259 |
4. Add sign-up checkboxes to various places on your site.
|
260 |
-
5. Creating sign-up forms is easy. The Pro version allows you to create as many form as you like.
|
261 |
6. Write your own HTML or have it generated for you. Many (optional) customization settings are availabl.
|
262 |
7. **Pro only:** Gain valuable insights which method your visitors used to subscribe for any given time period using beautiful line charts.
|
263 |
8. **Pro only:** Create your own CSS styles with the form designer in the Pro version.
|
264 |
|
265 |
== Changelog ==
|
266 |
|
|
|
|
|
|
|
|
|
267 |
= 2.2.2 - January 13, 2014 =
|
268 |
|
269 |
**Fixes**
|
@@ -677,5 +688,6 @@ It's easy to translate the plugin into your own language. Head over to the [tran
|
|
677 |
|
678 |
== Upgrade Notice ==
|
679 |
|
680 |
-
= 2.2.
|
681 |
-
|
|
1 |
=== MailChimp for WordPress ===
|
2 |
Contributors: DvanKooten
|
3 |
Donate link: https://mc4wp.com/
|
4 |
+
Tags: MailChimp,newsletter,optin,mailinglist,sign-up form,subscribe,form,shortcode,widget,checkbox,comment,buddypress,multisite,bbpress,woocommerce,easy digital downloads,contact form,contact form 7,events manager,comment form,registration form,captcha
|
5 |
Requires at least: 3.6
|
6 |
+
Tested up to: 4.1.1
|
7 |
+
Stable tag: 2.2.3
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
+
The best MailChimp plugin to get more email subscribers. Easily add MailChimp sign-up forms and sign-up checkboxes to your WordPress site.
|
12 |
|
13 |
== Description ==
|
14 |
|
16 |
|
17 |
*Adding sign-up methods for your MailChimp lists to your WordPress site should be easy. With this plugin, it finally is.*
|
18 |
|
19 |
+
MailChimp for WordPress lets you create a highly customizable sign-up form which you can display wherever you want it to display using a simple shortcode, widget or template function. You can also add MailChimp sign-up checkboxes to various forms on your site, like your comment or contact forms.
|
20 |
|
21 |
+
= MailChimp Sign-Up Forms =
|
22 |
Easily create sign-up forms for your MailChimp list and display it using a simple shortcode, a widget or PHP function.
|
23 |
|
24 |
= Sign-Up Checkboxes =
|
25 |
+
Add MailChimp sign-up checkboxes to *any* form on your website. The plugin offers built-in integration with comment forms, registration forms, Contact Form 7, BuddyPress, bbPress and WordPress MultiSite.
|
26 |
|
27 |
**MailChimp for WordPress, at a glance..**
|
28 |
|
45 |
>
|
46 |
> [Upgrade to MailChimp for WordPress Pro](https://mc4wp.com/features/#utm_source=wp-plugin-repo&utm_medium=link&utm_campaign=after-features-link)
|
47 |
|
48 |
+
**Add-on plugins**
|
49 |
+
|
50 |
+
There are several add-on plugins available for MailChimp for WordPress, which help you get even more out of your site.
|
51 |
+
|
52 |
+
- [MailChimp Top Bar](https://wordpress.org/plugins/mailchimp-top-bar/) - Adds a top bar to your site, asking visitors to subscribe.
|
53 |
+
- [MailChimp Sync](https://wordpress.org/plugins/mailchimp-sync/) - Synchronizes your WordPress users with a MailChimp list.
|
54 |
+
|
55 |
**Translations**
|
56 |
|
57 |
New or improved [translations of the MailChimp for WordPress plugin are welcomed on Transifex](https://www.transifex.com/projects/p/mailchimp-for-wordpress/).
|
260 |
|
261 |
== Screenshots ==
|
262 |
|
263 |
+
1. Simple or advanced MailChimp sign-up forms that blend in with your theme.
|
264 |
2. A sign-up checkbox in your comment form is an amazing conversion booster.
|
265 |
3. A simple form in the footer of the Twenty Thirteen theme.
|
266 |
4. Add sign-up checkboxes to various places on your site.
|
267 |
+
5. Creating sign-up forms for your MailChimp lists is easy. The Pro version allows you to create as many form as you like.
|
268 |
6. Write your own HTML or have it generated for you. Many (optional) customization settings are availabl.
|
269 |
7. **Pro only:** Gain valuable insights which method your visitors used to subscribe for any given time period using beautiful line charts.
|
270 |
8. **Pro only:** Create your own CSS styles with the form designer in the Pro version.
|
271 |
|
272 |
== Changelog ==
|
273 |
|
274 |
+
= 2.2.3 - January 24, 2014 =
|
275 |
+
|
276 |
+
Minor improvements and additions for compatibility with the [MailChimp Sync plugin](https://wordpress.org/plugins/mailchimp-sync/).
|
277 |
+
|
278 |
= 2.2.2 - January 13, 2014 =
|
279 |
|
280 |
**Fixes**
|
688 |
|
689 |
== Upgrade Notice ==
|
690 |
|
691 |
+
= 2.2.3 =
|
692 |
+
|
693 |
+
Minor improvements and additions for compatibility with the [MailChimp Sync plugin](https://wordpress.org/plugins/mailchimp-sync/).
|