Changeset 1074223
- Timestamp:
- 01/23/2015 04:30:13 PM (11 years ago)
- Location:
- osd-mailchimp-forms
- Files:
-
- 13 added
- 7 edited
-
tags/2.0 (added)
-
tags/2.0/images (added)
-
tags/2.0/images/icon.png (added)
-
tags/2.0/includes (added)
-
tags/2.0/includes/OSDMailChimp.php (added)
-
tags/2.0/includes/external_request.php (added)
-
tags/2.0/includes/form_settings.php (added)
-
tags/2.0/includes/global_settings.php (added)
-
tags/2.0/includes/js.php (added)
-
tags/2.0/includes/shortcode.php (added)
-
tags/2.0/osd_mailchimp_forms.php (added)
-
tags/2.0/readme.txt (added)
-
tags/2.0/uninstall.php (added)
-
trunk/includes/OSDMailChimp.php (modified) (3 diffs)
-
trunk/includes/external_request.php (modified) (1 diff)
-
trunk/includes/form_settings.php (modified) (1 diff)
-
trunk/includes/global_settings.php (modified) (4 diffs)
-
trunk/includes/js.php (modified) (3 diffs)
-
trunk/osd_mailchimp_forms.php (modified) (1 diff)
-
trunk/readme.txt (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
osd-mailchimp-forms/trunk/includes/OSDMailChimp.php
r1060835 r1074223 123 123 </div> 124 124 <div class='msg-class'><input type='text' name='form[".$formID."][msg-class]' value='".$this->ifset($args['formInfo']['msg-class'])."' /></div> 125 </div>"; 126 $return .= "<div class='field'> 127 <div class='failure-label'>Custom general failure message:</div> 128 <div class='failure-msg'> 129 <input type='text' name='form[".$formID."][failure-msg]' value='".$this->ifset($args['formInfo']['failure-msg'])."' /> 130 </div> 131 <div class='msg-class'><input type='text' name='form[".$formID."][failure-msg-class]' value='".$this->ifset($args['formInfo']['failure-msg-class'])."' /></div> 132 </div>"; 133 $return .= "<div class='field'> 134 <div class='duplicate-failure-label'>Custom duplicate email failure message:</div> 135 <div class='duplicate-failure-msg'> 136 <input type='text' name='form[".$formID."][duplicate-failure-msg]' value='".$this->ifset($args['formInfo']['duplicate-failure-msg'])."' /> 137 </div> 138 <div class='msg-class'><input type='text' name='form[".$formID."][duplicate-failure-msg-class]' value='".$this->ifset($args['formInfo']['duplicate-failure-msg-class'])."' /></div> 125 139 </div>"; 126 140 $return .= "<div class='field'> … … 245 259 public function subscribe($data) { 246 260 if(!isset($data['fields']['EMAIL']) || !isset($data['listID']) || $data['fields']['EMAIL'] == '' || $data['listID'] == '') { 247 return 'error: please provide required fields';261 return json_encode(array('status' => 'error', 'content' => 'Please provide required fields.')); 248 262 } 249 263 … … 278 292 279 293 $mailChimpResponse = $this->apiCall(json_encode($this->mailChimpArray), $this->baseURL.'/lists/subscribe.json'); 280 if(isset($mailChimpResponse['euid'])) { 281 $form_options = json_decode(get_option($data['shortCode']), true); 294 $form_options = json_decode(get_option($data['shortCode']), true); 295 if(isset($mailChimpResponse['euid'])) { // Success 296 $class = (isset($form_options['msg-class']) && $form_options['msg-class'] != '') ? $form_options['msg-class'] : 'global-success'; 297 $status = 'success'; 282 298 if (isset($form_options['success-page']) && $form_options['success-page'] != '') { 283 return json_encode(array('redirect' => 1, 'url' => get_page_link($form_options['success-page']))); 299 // Redirect 300 $return = array('status' => $status, 'redirect' => 1, 'url' => get_page_link($form_options['success-page'])); 284 301 } else if (isset($form_options['success-msg']) && $form_options['success-msg'] != '') { 285 return $form_options['success-msg']; 302 // Forms specific success message 303 $return = array( 304 'status' => $status, 305 'class' => $class, 306 'content' => apply_filters('the_content', $form_options['success-msg']) 307 ); 286 308 } else { 287 return apply_filters('the_content', get_option('osd_mc_form_submission_message')); 288 } 289 } 290 return 'error'; 309 // Global success message 310 $return = array( 311 'status' => $status, 312 'class' => $class, 313 'content' => apply_filters('the_content', get_option('osd_mc_form_success_message')) 314 ); 315 } 316 } else if ($mailChimpResponse['status'] == 'error') { // Specific failure messages 317 $class = 'global-failure'; 318 $status = 'error'; 319 if ($mailChimpResponse['name'] == 'List_AlreadySubscribed') { // Duplicate email address 320 if (isset($form_options['duplicate-failure-msg']) && $form_options['duplicate-failure-msg'] != '') { 321 // Form specific duplicate email failure 322 $class = (isset($form_options['duplicate-failure-msg-class']) && $form_options['duplicate-failure-msg-class'] != '') ? $form_options['duplicate-failure-msg-class'] : $class; 323 $return = array( 324 'status' => $status, 325 'class' => $class, 326 'content' => apply_filters('the_content', $form_options['duplicate-failure-msg']) 327 ); 328 } 329 } 330 } 331 332 // After looking for specific success / error and none found, set generals 333 if (!isset($return)) { 334 $class = (isset($form_options['failure-msg-class']) && $form_options['failure-msg-class'] != '') ? $form_options['failure-msg-class'] : 'global-failure'; 335 $status = 'error'; 336 if (isset($form_options['failure-msg']) && $form_options['failure-msg'] != '') { 337 $return = array( 338 'status' => $status, 339 'class' => $class, 340 'content' => apply_filters('the_content', $form_options['failure-msg']) 341 ); 342 } else { 343 $return = array( 344 'status' => $status, 345 'class' => $class, 346 'content' => apply_filters('the_content', get_option('osd_mc_form_failure_message')) 347 ); 348 } 349 } 350 351 return json_encode($return); 291 352 } 292 353 -
osd-mailchimp-forms/trunk/includes/external_request.php
r1017566 r1074223 24 24 25 25 function osd_validate_mc_key() { 26 $omc = new OSDMailChimp( );26 $omc = new OSDMailChimp($_POST); 27 27 echo ($omc->validateKey()) ? 'good' : 'error'; 28 28 exit; -
osd-mailchimp-forms/trunk/includes/form_settings.php
r1012908 r1074223 228 228 width: 100%; 229 229 } 230 .mcFormWrapper > .field > .success-label { 230 .mcFormWrapper > .field > .success-label, 231 .mcFormWrapper > .field > .failure-label, 232 .mcFormWrapper > .field > .duplicate-failure-label { 231 233 width: 26%; 232 234 } 233 .mcFormWrapper .field .success-msg { 235 .mcFormWrapper .field .success-msg, 236 .mcFormWrapper .field .failure-msg, 237 .mcFormWrapper .field .duplicate-failure-msg { 234 238 width: 53%; 235 239 } 236 240 .mcFormWrapper .field .success-msg input, 241 .mcFormWrapper .field .failure-msg input, 242 .mcFormWrapper .field .duplicate-failure-msg input, 237 243 .mcFormWrapper .field .msg-class > input { 238 244 width: 100%; -
osd-mailchimp-forms/trunk/includes/global_settings.php
r1012908 r1074223 33 33 // Set class property 34 34 $this->options = get_option('osd_mc_form_options'); 35 $this->submissionMessage = get_option('osd_mc_form_submission_message'); 35 $this->successMessage = get_option('osd_mc_form_success_message'); 36 $this->failureMessage = get_option('osd_mc_form_failure_message'); 36 37 ?> 37 38 <div class="wrap"> … … 70 71 register_setting( 71 72 'osd-mailchimp-form-options', // Option group 72 'osd_mc_form_submission_message', // Option name 73 'osd_mc_form_success_message', // Option name 74 array($this, 'apply_content_save_pre') // Sanitize 75 ); 76 77 register_setting( 78 'osd-mailchimp-form-options', // Option group 79 'osd_mc_form_failure_message', // Option name 73 80 array($this, 'apply_content_save_pre') // Sanitize 74 81 ); … … 98 105 99 106 add_settings_field( 100 'su bmission-message',101 ' Custom Submission Message',102 array($this, 'su bmission_message_callback'),107 'success-message', 108 'Global Custom Success Message (can override on individual form options)', 109 array($this, 'success_message_callback'), 103 110 'osd-mailchimp-form-options', 104 111 'main_settings' 105 112 ); 113 114 add_settings_field( 115 'failure-message', 116 'Global Custom Failure Message (can override on individual form options)', 117 array($this, 'failure_message_callback'), 118 'osd-mailchimp-form-options', 119 'main_settings' 120 ); 106 121 } 107 122 … … 153 168 } 154 169 155 public function su bmission_message_callback() {156 $su bmission_message_parameters = array(170 public function success_message_callback() { 171 $success_message_parameters = array( 157 172 'teeny' => false, 158 173 'textarea_rows' => 10, 159 174 'tabindex' => 1, 160 'textarea_name' => 'osd_mc_form_su bmission_message',175 'textarea_name' => 'osd_mc_form_success_message', 161 176 'drag_drop_upload' => true 162 177 ); 163 $content = apply_filters('content_edit_pre', $this->submissionMessage); 164 wp_editor($content, 'content', $submission_message_parameters); 178 $content = apply_filters('content_edit_pre', $this->successMessage); 179 wp_editor($content, 'success-content', $success_message_parameters); 180 } 181 182 public function failure_message_callback() { 183 $failure_message_parameters = array( 184 'teeny' => false, 185 'textarea_rows' => 10, 186 'tabindex' => 1, 187 'textarea_name' => 'osd_mc_form_failure_message', 188 'drag_drop_upload' => true 189 ); 190 $content = apply_filters('content_edit_pre', $this->failureMessage); 191 wp_editor($content, 'failure-content', $failure_message_parameters); 165 192 } 166 193 /**** end output to admin settings screen ****/ -
osd-mailchimp-forms/trunk/includes/js.php
r1060835 r1074223 67 67 var data = jQuery(form).serialize(); 68 68 data += "&osd_mc_ajax=true&wp_nonce=<?php echo wp_create_nonce('osd_mc_subscribe'); ?>&action=osd_mc_subscribe" 69 var errorMessage = "Sorry, there was an error.";69 var message = "Sorry, there was an error processing your request."; 70 70 71 71 var xhr = new XMLHttpRequest(); … … 75 75 if (this.readyState === 4) { 76 76 if (this.status === 200) { 77 var response = (this.response !== undefined) ? this.response: this.responseText; 78 var message = (response != "error") ? response : errorMessage; 77 var response = (this.response !== undefined) ? this.response : this.responseText; 79 78 try { 80 var redirect = JSON.parse(response); 81 window.location = redirect.url; 79 var returnArray = JSON.parse(response); 80 81 if (returnArray.redirect !== undefined) { 82 window.location = returnArray.url; 83 return; 84 } 85 86 for (var i=0, l=messages.length; i < l; i++) { 87 messages[i].className = "osd-mc-message " + returnArray.class; 88 messages[i].innerHTML = returnArray.content; 89 } 90 91 if (returnArray.status == 'success') { 92 form.reset(); 93 }; 82 94 } catch(error) { 83 if (response != "error") {84 form.reset();85 }86 95 for (var i=0, l=messages.length; i < l; i++) { 87 96 messages[i].innerHTML = message; … … 90 99 } else { 91 100 for (var i=0, l=messages.length; i < l; i++) { 92 messages[i].innerHTML = errorMessage;101 messages[i].innerHTML = message; 93 102 } 94 103 } -
osd-mailchimp-forms/trunk/osd_mailchimp_forms.php
r1060835 r1074223 4 4 Plugin URI: http://outsidesource.com 5 5 Description: A plugin for adding one or more signup forms for MailChimp lists. 6 Version: 1.76 Version: 2.0 7 7 Author: OSD Web Development Team 8 8 Author URI: http://outsidesource.com -
osd-mailchimp-forms/trunk/readme.txt
r1060835 r1074223 3 3 Tags: wordpress, mailchimp, mail chimp, subscribe, multiple subscribe forms, multiple mailchimp 4 4 Requires at least: 3.4 5 Tested up to: 4. 06 Stable tag: 1.75 Tested up to: 4.1 6 Stable tag: 2.0 7 7 License: GPLv2 or later 8 8 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 60 60 == Changelog == 61 61 62 = 2.0 = 63 * Lots of new features added (See Upgrade Notice) revolving around MailChimp error handling 64 * API Key Validation bug fixed 65 * Various other bugs addressed 66 62 67 = 1.7 = 63 68 Added the ability to redirect to a page on site on success … … 96 101 == Upgrade Notice == 97 102 98 = 1.0 = 99 Add multiple AJAX MailChimp forms 103 = 2.0 = 104 * Customizable error messaging and classes 105 * Specific errors for users already subscribed to list 106 * Global error message settings 107 * All custom messages are now run through the content filter to allow for shortcodes and better html handling 100 108 101 = 1.1 = 102 Correct Uninstall Error 109 = 1.7 = 110 Added the ability to redirect to a page on site on success 111 112 = 1.5 = 113 Updated to work with older versions of PH 114 115 = 1.3 = 116 Added some WordPress Security 103 117 104 118 = 1.2 = … … 106 120 ["How To Video"](https://www.youtube.com/watch?v=gb1eQAgbw-Q) 107 121 108 = 1. 3=109 Add ed some WordPress Security122 = 1.0 = 123 Add multiple AJAX MailChimp forms 110 124 111 = 1.4 =112 Phone and address field updates113 114 = 1.5 =115 Updated to work with older versions of PHP116 117 = 1.7 =118 Added the ability to redirect to a page on site on success119 125 120 126 == A brief Feature List ==
Note: See TracChangeset
for help on using the changeset viewer.