Plugin Directory

Changeset 1762311


Ignore:
Timestamp:
11/09/2017 10:11:00 PM (8 years ago)
Author:
MailChimp
Message:

Update to 2.1.1. Address performance issue.

Location:
mailchimp-for-woocommerce
Files:
102 added
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • mailchimp-for-woocommerce/trunk/README.txt

    r1762067 r1762311  
    5151
    5252== Changelog ==
     53= 2.1.1 =
     54* To address performance issues previously reported, we've changed the action hook of "woocommerce_cart_updated" to use a filter "woocommerce_update_cart_action_cart_updated"
    5355
    5456= 2.1.0 =
  • mailchimp-for-woocommerce/trunk/includes/class-mailchimp-woocommerce-service.php

    r1762067 r1762311  
    118118
    119119    /**
    120      * @return bool
    121      */
    122     public function handleCartUpdated()
    123     {
    124         if ($this->is_admin || $this->cart_was_submitted || !$this->hasOption('mailchimp_api_key')) {
    125             return false;
     120     * @param null $updated
     121     * @return bool|null
     122     */
     123    public function handleCartUpdated($updated = null)
     124    {
     125        if ($updated === false || $this->is_admin || $this->cart_was_submitted || !$this->hasOption('mailchimp_api_key')) {
     126            return !is_null($updated) ? $updated : false;
    126127        }
    127128
     
    162163            }
    163164
    164             return true;
    165         }
    166 
    167         return false;
     165            return !is_null($updated) ? $updated : true;
     166        }
     167
     168        return !is_null($updated) ? $updated : false;
    168169    }
    169170
  • mailchimp-for-woocommerce/trunk/includes/class-mailchimp-woocommerce.php

    r1762067 r1762311  
    338338
    339339            // cart hooks
    340             $this->loader->add_action('woocommerce_cart_updated', $service, 'handleCartUpdated');
     340            //$this->loader->add_action('woocommerce_cart_updated', $service, 'handleCartUpdated');
     341            $this->loader->add_filter('woocommerce_update_cart_action_cart_updated', $service, 'handleCartUpdated');
    341342            $this->loader->add_action('woocommerce_add_to_cart', $service, 'handleCartUpdated');
    342343            $this->loader->add_action('woocommerce_cart_item_removed', $service, 'handleCartUpdated');
  • mailchimp-for-woocommerce/trunk/mailchimp-woocommerce.php

    r1762067 r1762311  
    1717 * Plugin URI:        https://mailchimp.com/connect-your-store/
    1818 * Description:       MailChimp - WooCommerce plugin
    19  * Version:           2.1.0
     19 * Version:           2.1.1
    2020 * Author:            MailChimp
    2121 * Author URI:        https://mailchimp.com
     
    4444        'repo' => 'master',
    4545        'environment' => 'production',
    46         'version' => '2.1.0',
     46        'version' => '2.1.1',
    4747        'wp_version' => (empty($wp_version) ? 'Unknown' : $wp_version),
    4848        'wc_version' => class_exists('WC') ? WC()->version : null,
  • mailchimp-for-woocommerce/trunk/public/js/mailchimp-woocommerce-public.js

    r1557758 r1762311  
    1414    }
    1515}
    16 function mailchimpHandleBillingEmail() {
    17     var a = document.querySelector("#billing_email"), b = void 0 !== a ? a.value : "";
    18     if (!mailchimp_cart.valueEmail(b))return !1;
    19     if (mailchimp_submitted_email === b)return "already submitted " + b;
     16function mailchimpHandleBillingEmail(selector) {
     17    if (!selector) selector = "#billing_email";
     18    var a = document.querySelector(selector);b = void 0 !== a ? a.value : "";
     19    if (!mailchimp_cart.valueEmail(b)) { return false; }
     20    if (mailchimp_submitted_email === b) { return "already submitted " + b; }
    2021    mailchimp_cart.setEmail(b);
    2122    try {
     
    2526        }, d.onerror = function () {
    2627            console.log("mailchimp.handle_billing_email.request.error", d.responseText)
    27         }, d.setRequestHeader("Content-Type", "application/json"), d.setRequestHeader("Accept", "application/json"), d.send(), mailchimp_submitted_email = b
     28        }, d.setRequestHeader("Content-Type", "application/json"), d.setRequestHeader("Accept", "application/json"), d.send(), mailchimp_submitted_email = b;
     29        return true;
    2830    } catch (a) {
    2931        console.log("mailchimp.handle_billing_email.error", a), mailchimp_submitted_email = !1
    3032    }
    3133}
    32 var mailchimp, mailchimp_cart, mailchimp_billing_email, mailchimp_submitted_email = !1, mailchimpReady = function (a) {
     34
     35var mailchimp, mailchimp_cart, mailchimp_billing_email, mailchimp_username_email, mailchimp_registration_email, mailchimp_submitted_email = !1, mailchimpReady = function (a) {
    3336    /in/.test(document.readyState) ? setTimeout("mailchimpReady(" + a + ")", 9) : a()
    3437};
     38
    3539!function () {
    3640    "use strict";
     
    123127        }, c.enabled = function () {
    124128            var a = "1" === c.set("cookies.js", "1").get("cookies.js");
    125             return c.expire("cookies.js"), a
     129            return c.expire("cookies.js"), a;
    126130        }(), c
    127131    }(document);
    128     mailchimp = {storage: h, utils: g}, mailchimp_cart = new j
    129 }(), mailchimpReady(function () {
    130     if (void 0 === a)var a = {
    131         site_url: document.location.origin,
    132         defaulted: !0,
    133         ajax_url: document.location.origin + "/wp-admin?admin-ajax.php"
    134     };
     132
     133    mailchimp = {storage: h, utils: g};
     134    mailchimp_cart = new j;
     135}();
     136
     137mailchimpReady(function () {
     138
     139    if (void 0 === a) {
     140        var a = { site_url: document.location.origin, defaulted: !0, ajax_url: document.location.origin + "/wp-admin?admin-ajax.php" };
     141    }
     142
    135143    var b = mailchimp.utils.getQueryStringVars();
    136     void 0 !== b.mc_cart_id && mailchimpGetCurrentUserByHash(b.mc_cart_id), mailchimp_billing_email = document.querySelector("#billing_email"), mailchimp_billing_email && (mailchimp_billing_email.onblur = function () {
    137         mailchimpHandleBillingEmail()
    138     }, mailchimp_billing_email.onfocus = function () {
    139         mailchimpHandleBillingEmail()
    140     })
     144    void 0 !== b.mc_cart_id && mailchimpGetCurrentUserByHash(b.mc_cart_id);
     145
     146    mailchimp_username_email = document.querySelector("#username");
     147    mailchimp_billing_email = document.querySelector("#billing_email");
     148    mailchimp_registration_email = document.querySelector("#reg_email");
     149
     150    if (mailchimp_billing_email) {
     151        mailchimp_billing_email.onblur = function () { mailchimpHandleBillingEmail('#billing_email'); };
     152        mailchimp_billing_email.onfocus = function () { mailchimpHandleBillingEmail('#billing_email'); }
     153    }
     154
     155    if (mailchimp_username_email) {
     156        mailchimp_username_email.onblur = function () { mailchimpHandleBillingEmail('#username'); };
     157        mailchimp_username_email.onfocus = function () { mailchimpHandleBillingEmail('#username'); }
     158    }
     159
     160    if (mailchimp_registration_email) {
     161        mailchimp_registration_email.onblur = function () { mailchimpHandleBillingEmail('#reg_email'); };
     162        mailchimp_registration_email.onfocus = function () { mailchimpHandleBillingEmail('#reg_email'); }
     163    }
    141164});
  • mailchimp-for-woocommerce/trunk/public/js/mailchimp-woocommerce-public.min.js

    r1557758 r1762311  
    1 function mailchimpGetCurrentUserByHash(a){try{var b=mailchimp_public_data.ajax_url+"?action=mailchimp_get_user_by_hash&hash="+a,c=new XMLHttpRequest;c.open("POST",b,!0),c.onload=function(){if(c.status>=200&&c.status<400){var a=JSON.parse(c.responseText);mailchimp_cart.valueEmail(a.email)&&(mailchimp_cart.setEmail(a.email),console.log("mailchimp.get_email_by_hash.success","setting "+a.email+" as the current user"))}else console.log("mailchimp.get_email_by_hash.error",c.responseText)},c.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",c.responseText)},c.setRequestHeader("Content-Type","application/json"),c.setRequestHeader("Accept","application/json"),c.send()}catch(a){console.log("mailchimp.get_email_by_hash.error",a)}}function mailchimpHandleBillingEmail(){var a=document.querySelector("#billing_email"),b=void 0!==a?a.value:"";if(!mailchimp_cart.valueEmail(b))return!1;if(mailchimp_submitted_email===b)return"already submitted "+b;mailchimp_cart.setEmail(b);try{var c=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email&email="+b,d=new XMLHttpRequest;d.open("POST",c,!0),d.onload=function(){d.status>=200&&d.status<400?console.log("mailchimp.handle_billing_email.request.success",d.responseText):console.log("mailchimp.handle_billing_email.request.error",d.responseText)},d.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",d.responseText)},d.setRequestHeader("Content-Type","application/json"),d.setRequestHeader("Accept","application/json"),d.send(),mailchimp_submitted_email=b}catch(a){console.log("mailchimp.handle_billing_email.error",a),mailchimp_submitted_email=!1}}var mailchimp,mailchimp_cart,mailchimp_billing_email,mailchimp_submitted_email=!1,mailchimpReady=function(a){/in/.test(document.readyState)?setTimeout("mailchimpReady("+a+")",9):a()};!function(){"use strict";function j(){return this.email_types="input[type=email]",this.regex_email=/^([A-Za-z0-9_+\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,this.current_email=null,this.previous_email=null,this.expireUser=function(){this.current_email=null,mailchimp.storage.expire("mailchimp.cart.current_email")},this.expireSaved=function(){mailchimp.storage.expire("mailchimp.cart.items")},this.setEmail=function(a){this.valueEmail(a)&&(this.setPreviousEmail(this.getEmail()),this.current_email=a,mailchimp.storage.set("mailchimp.cart.current_email",a))},this.getEmail=function(){if(this.current_email)return this.current_email;var a=mailchimp.storage.get("mailchimp.cart.current_email",!1);return!(!a||!this.valueEmail(a))&&(this.current_email=a,a)},this.setPreviousEmail=function(a){this.valueEmail(a)&&(mailchimp.storage.set("mailchimp.cart.previous_email",a),this.previous_email=a)},this.valueEmail=function(a){return this.regex_email.test(a)},this}var g={extend:function(a,b){for(var c in b||{})b.hasOwnProperty(c)&&(a[c]=b[c]);return a},getQueryStringVars:function(){var a=window.location.search||"",b=[],c={};if(a=a.substr(1),a.length){b=a.split("&");for(var d in b){var e=b[d];if("string"==typeof e){var f=e.split("="),g=f[0],h=f[1];g.length&&("undefined"==typeof c[g]&&(c[g]=[]),c[g].push(h))}}}return c},unEscape:function(a){return decodeURIComponent(a)},escape:function(a){return encodeURIComponent(a)},createDate:function(a,b){a||(a=0);var c=new Date,d=b?c.getDate()-a:c.getDate()+a;return c.setDate(d),c},arrayUnique:function(a){for(var b=a.concat(),c=0;c<b.length;++c)for(var d=c+1;d<b.length;++d)b[c]===b[d]&&b.splice(d,1);return b},objectCombineUnique:function(a){for(var b=a[0],c=1;c<a.length;c++){var d=a[c];for(var e in d)b[e]=d[e]}return b}},h=function(a,b){var c=function(a,b,d){return 1===arguments.length?c.get(a):c.set(a,b,d)};return c.get=function(b,d){return a.cookie!==c._cacheString&&c._populateCache(),void 0==c._cache[b]?d:c._cache[b]},c.defaults={path:"/"},c.set=function(d,e,f){switch(f={path:f&&f.path||c.defaults.path,domain:f&&f.domain||c.defaults.domain,expires:f&&f.expires||c.defaults.expires,secure:f&&f.secure!==b?f.secure:c.defaults.secure},e===b&&(f.expires=-1),typeof f.expires){case"number":f.expires=new Date((new Date).getTime()+1e3*f.expires);break;case"string":f.expires=new Date(f.expires)}return d=encodeURIComponent(d)+"="+(e+"").replace(/[^!#-+\--:<-\[\]-~]/g,encodeURIComponent),d+=f.path?";path="+f.path:"",d+=f.domain?";domain="+f.domain:"",d+=f.expires?";expires="+f.expires.toGMTString():"",d+=f.secure?";secure":"",a.cookie=d,c},c.expire=function(a,d){return c.set(a,b,d)},c._populateCache=function(){c._cache={};try{c._cacheString=a.cookie;for(var d=c._cacheString.split("; "),e=0;e<d.length;e++){var f=d[e].indexOf("="),g=decodeURIComponent(d[e].substr(0,f)),f=decodeURIComponent(d[e].substr(f+1));c._cache[g]===b&&(c._cache[g]=f)}}catch(a){console.log(a)}},c.enabled=function(){var a="1"===c.set("cookies.js","1").get("cookies.js");return c.expire("cookies.js"),a}(),c}(document);mailchimp={storage:h,utils:g},mailchimp_cart=new j}(),mailchimpReady(function(){if(void 0===a)var a={site_url:document.location.origin,defaulted:!0,ajax_url:document.location.origin+"/wp-admin?admin-ajax.php"};var b=mailchimp.utils.getQueryStringVars();void 0!==b.mc_cart_id&&mailchimpGetCurrentUserByHash(b.mc_cart_id),mailchimp_billing_email=document.querySelector("#billing_email"),mailchimp_billing_email&&(mailchimp_billing_email.onblur=function(){mailchimpHandleBillingEmail()},mailchimp_billing_email.onfocus=function(){mailchimpHandleBillingEmail()})});
     1function mailchimpGetCurrentUserByHash(e){try{var i=mailchimp_public_data.ajax_url+"?action=mailchimp_get_user_by_hash&hash="+e,a=new XMLHttpRequest;a.open("POST",i,!0),a.onload=function(){if(a.status>=200&&a.status<400){var e=JSON.parse(a.responseText);mailchimp_cart.valueEmail(e.email)&&(mailchimp_cart.setEmail(e.email),console.log("mailchimp.get_email_by_hash.success","setting "+e.email+" as the current user"))}else console.log("mailchimp.get_email_by_hash.error",a.responseText)},a.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",a.responseText)},a.setRequestHeader("Content-Type","application/json"),a.setRequestHeader("Accept","application/json"),a.send()}catch(e){console.log("mailchimp.get_email_by_hash.error",e)}}function mailchimpHandleBillingEmail(e){e||(e="#billing_email");var i=document.querySelector(e);if(b=void 0!==i?i.value:"",!mailchimp_cart.valueEmail(b))return!1;if(mailchimp_submitted_email===b)return"already submitted "+b;mailchimp_cart.setEmail(b);try{var a=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email&email="+b,t=new XMLHttpRequest;return t.open("POST",a,!0),t.onload=function(){t.status>=200&&t.status<400?console.log("mailchimp.handle_billing_email.request.success",t.responseText):console.log("mailchimp.handle_billing_email.request.error",t.responseText)},t.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",t.responseText)},t.setRequestHeader("Content-Type","application/json"),t.setRequestHeader("Accept","application/json"),t.send(),mailchimp_submitted_email=b,!0}catch(i){console.log("mailchimp.handle_billing_email.error",i),mailchimp_submitted_email=!1}}var mailchimp,mailchimp_cart,mailchimp_billing_email,mailchimp_username_email,mailchimp_registration_email,mailchimp_submitted_email=!1,mailchimpReady=function(e){/in/.test(document.readyState)?setTimeout("mailchimpReady("+e+")",9):e()};!function(){"use strict";var e={extend:function(e,i){for(var a in i||{})i.hasOwnProperty(a)&&(e[a]=i[a]);return e},getQueryStringVars:function(){var e=window.location.search||"",i=[],a={};if((e=e.substr(1)).length){i=e.split("&");for(var t in i){var n=i[t];if("string"==typeof n){var l=n.split("="),r=l[0],m=l[1];r.length&&(void 0===a[r]&&(a[r]=[]),a[r].push(m))}}}return a},unEscape:function(e){return decodeURIComponent(e)},escape:function(e){return encodeURIComponent(e)},createDate:function(e,i){e||(e=0);var a=new Date,t=i?a.getDate()-e:a.getDate()+e;return a.setDate(t),a},arrayUnique:function(e){for(var i=e.concat(),a=0;a<i.length;++a)for(var t=a+1;t<i.length;++t)i[a]===i[t]&&i.splice(t,1);return i},objectCombineUnique:function(e){for(var i=e[0],a=1;a<e.length;a++){var t=e[a];for(var n in t)i[n]=t[n]}return i}},i=function(e,i){var a=function(e,i,t){return 1===arguments.length?a.get(e):a.set(e,i,t)};return a.get=function(i,t){return e.cookie!==a._cacheString&&a._populateCache(),void 0==a._cache[i]?t:a._cache[i]},a.defaults={path:"/"},a.set=function(t,n,l){switch(l={path:l&&l.path||a.defaults.path,domain:l&&l.domain||a.defaults.domain,expires:l&&l.expires||a.defaults.expires,secure:l&&l.secure!==i?l.secure:a.defaults.secure},n===i&&(l.expires=-1),typeof l.expires){case"number":l.expires=new Date((new Date).getTime()+1e3*l.expires);break;case"string":l.expires=new Date(l.expires)}return t=encodeURIComponent(t)+"="+(n+"").replace(/[^!#-+\--:<-\[\]-~]/g,encodeURIComponent),t+=l.path?";path="+l.path:"",t+=l.domain?";domain="+l.domain:"",t+=l.expires?";expires="+l.expires.toGMTString():"",t+=l.secure?";secure":"",e.cookie=t,a},a.expire=function(e,t){return a.set(e,i,t)},a._populateCache=function(){a._cache={};try{a._cacheString=e.cookie;for(var t=a._cacheString.split("; "),n=0;n<t.length;n++){var l=t[n].indexOf("="),r=decodeURIComponent(t[n].substr(0,l)),l=decodeURIComponent(t[n].substr(l+1));a._cache[r]===i&&(a._cache[r]=l)}}catch(e){console.log(e)}},a.enabled=function(){var e="1"===a.set("cookies.js","1").get("cookies.js");return a.expire("cookies.js"),e}(),a}(document);mailchimp={storage:i,utils:e},mailchimp_cart=new function(){return this.email_types="input[type=email]",this.regex_email=/^([A-Za-z0-9_+\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,this.current_email=null,this.previous_email=null,this.expireUser=function(){this.current_email=null,mailchimp.storage.expire("mailchimp.cart.current_email")},this.expireSaved=function(){mailchimp.storage.expire("mailchimp.cart.items")},this.setEmail=function(e){this.valueEmail(e)&&(this.setPreviousEmail(this.getEmail()),this.current_email=e,mailchimp.storage.set("mailchimp.cart.current_email",e))},this.getEmail=function(){if(this.current_email)return this.current_email;var e=mailchimp.storage.get("mailchimp.cart.current_email",!1);return!(!e||!this.valueEmail(e))&&(this.current_email=e,e)},this.setPreviousEmail=function(e){this.valueEmail(e)&&(mailchimp.storage.set("mailchimp.cart.previous_email",e),this.previous_email=e)},this.valueEmail=function(e){return this.regex_email.test(e)},this}}(),mailchimpReady(function(){if(void 0===e)var e={site_url:document.location.origin,defaulted:!0,ajax_url:document.location.origin+"/wp-admin?admin-ajax.php"};var i=mailchimp.utils.getQueryStringVars();void 0!==i.mc_cart_id&&mailchimpGetCurrentUserByHash(i.mc_cart_id),mailchimp_username_email=document.querySelector("#username"),mailchimp_billing_email=document.querySelector("#billing_email"),mailchimp_registration_email=document.querySelector("#reg_email"),mailchimp_billing_email&&(mailchimp_billing_email.onblur=function(){mailchimpHandleBillingEmail("#billing_email")},mailchimp_billing_email.onfocus=function(){mailchimpHandleBillingEmail("#billing_email")}),mailchimp_username_email&&(mailchimp_username_email.onblur=function(){mailchimpHandleBillingEmail("#username")},mailchimp_username_email.onfocus=function(){mailchimpHandleBillingEmail("#username")}),mailchimp_registration_email&&(mailchimp_registration_email.onblur=function(){mailchimpHandleBillingEmail("#reg_email")},mailchimp_registration_email.onfocus=function(){mailchimpHandleBillingEmail("#reg_email")})});
Note: See TracChangeset for help on using the changeset viewer.