Plugin Directory

Changeset 1074223


Ignore:
Timestamp:
01/23/2015 04:30:13 PM (11 years ago)
Author:
osdwebdev
Message:

2.0 release

Location:
osd-mailchimp-forms
Files:
13 added
7 edited

Legend:

Unmodified
Added
Removed
  • osd-mailchimp-forms/trunk/includes/OSDMailChimp.php

    r1060835 r1074223  
    123123                                </div>
    124124                                <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>
    125139                            </div>";
    126140                $return .= "<div class='field'>
     
    245259    public function subscribe($data) {
    246260        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.'));
    248262        }
    249263
     
    278292
    279293        $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';
    282298            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']));
    284301            } 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                );
    286308            } 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);
    291352    }
    292353
  • osd-mailchimp-forms/trunk/includes/external_request.php

    r1017566 r1074223  
    2424
    2525function osd_validate_mc_key() {
    26     $omc = new OSDMailChimp();
     26    $omc = new OSDMailChimp($_POST);
    2727    echo ($omc->validateKey()) ? 'good' : 'error';
    2828    exit;
  • osd-mailchimp-forms/trunk/includes/form_settings.php

    r1012908 r1074223  
    228228                width: 100%;
    229229            }
    230             .mcFormWrapper > .field > .success-label {
     230            .mcFormWrapper > .field > .success-label,
     231            .mcFormWrapper > .field > .failure-label,
     232            .mcFormWrapper > .field > .duplicate-failure-label {
    231233                width: 26%;
    232234            }
    233             .mcFormWrapper .field .success-msg {
     235            .mcFormWrapper .field .success-msg,
     236            .mcFormWrapper .field .failure-msg,
     237            .mcFormWrapper .field .duplicate-failure-msg {
    234238                width: 53%;
    235239            }
    236240            .mcFormWrapper .field .success-msg input,
     241            .mcFormWrapper .field .failure-msg input,
     242            .mcFormWrapper .field .duplicate-failure-msg input,
    237243            .mcFormWrapper .field .msg-class > input {
    238244                width: 100%;
  • osd-mailchimp-forms/trunk/includes/global_settings.php

    r1012908 r1074223  
    3333        // Set class property
    3434        $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');
    3637        ?>
    3738        <div class="wrap">
     
    7071        register_setting(
    7172            '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
    7380            array($this, 'apply_content_save_pre') // Sanitize
    7481        );
     
    98105
    99106        add_settings_field(
    100             'submission-message',
    101             'Custom Submission Message',
    102             array($this, 'submission_message_callback'),
     107            'success-message',
     108            'Global Custom Success Message (can override on individual form options)',
     109            array($this, 'success_message_callback'),
    103110            'osd-mailchimp-form-options',
    104111            'main_settings'
    105112        ); 
     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        );
    106121    }
    107122
     
    153168    }
    154169
    155     public function submission_message_callback() {
    156         $submission_message_parameters = array(
     170    public function success_message_callback() {
     171        $success_message_parameters = array(
    157172            'teeny' => false,
    158173            'textarea_rows' => 10,
    159174            'tabindex' => 1,
    160             'textarea_name' => 'osd_mc_form_submission_message',
     175            'textarea_name' => 'osd_mc_form_success_message',
    161176            'drag_drop_upload' => true
    162177        );
    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);
    165192    }
    166193    /**** end output to admin settings screen ****/
  • osd-mailchimp-forms/trunk/includes/js.php

    r1060835 r1074223  
    6767                var data = jQuery(form).serialize();
    6868                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.";
    7070
    7171                var xhr = new XMLHttpRequest();
     
    7575                    if (this.readyState === 4) {
    7676                        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;
    7978                            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                                };
    8294                            } catch(error) {
    83                                 if (response != "error") {
    84                                     form.reset();
    85                                 }
    8695                                for (var i=0, l=messages.length; i < l; i++) {
    8796                                    messages[i].innerHTML = message;
     
    9099                        } else {
    91100                            for (var i=0, l=messages.length; i < l; i++) {
    92                                 messages[i].innerHTML = errorMessage;
     101                                messages[i].innerHTML = message;
    93102                            }
    94103                        }
  • osd-mailchimp-forms/trunk/osd_mailchimp_forms.php

    r1060835 r1074223  
    44Plugin URI: http://outsidesource.com
    55Description: A plugin for adding one or more signup forms for MailChimp lists.
    6 Version: 1.7
     6Version: 2.0
    77Author: OSD Web Development Team
    88Author URI: http://outsidesource.com
  • osd-mailchimp-forms/trunk/readme.txt

    r1060835 r1074223  
    33Tags: wordpress, mailchimp, mail chimp, subscribe, multiple subscribe forms, multiple mailchimp
    44Requires at least: 3.4
    5 Tested up to: 4.0
    6 Stable tag: 1.7
     5Tested up to: 4.1
     6Stable tag: 2.0
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    6060== Changelog ==
    6161
     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
    6267= 1.7 =
    6368Added the ability to redirect to a page on site on success
     
    96101== Upgrade Notice ==
    97102
    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
    100108
    101 = 1.1 =
    102 Correct Uninstall Error
     109= 1.7 =
     110Added the ability to redirect to a page on site on success
     111
     112= 1.5 =
     113Updated to work with older versions of PH
     114
     115= 1.3 =
     116Added some WordPress Security
    103117
    104118= 1.2 =
     
    106120["How To Video"](https://www.youtube.com/watch?v=gb1eQAgbw-Q)
    107121
    108 = 1.3 =
    109 Added some WordPress Security
     122= 1.0 =
     123Add multiple AJAX MailChimp forms
    110124
    111 = 1.4 =
    112 Phone and address field updates
    113 
    114 = 1.5 =
    115 Updated to work with older versions of PHP
    116 
    117 = 1.7 =
    118 Added the ability to redirect to a page on site on success
    119125
    120126== A brief Feature List ==
Note: See TracChangeset for help on using the changeset viewer.