From 2d52e6e3989e25b4892a617d912c9dca3d2f154b Mon Sep 17 00:00:00 2001 From: Caleb Burks <19caleb95@gmail.com> Date: Tue, 4 Jul 2017 04:01:59 -0500 Subject: [PATCH 1/2] Use ajax when restoring an item in the cart --- assets/js/frontend/cart.js | 33 ++++++++++++++++++++++++++++++ includes/class-wc-form-handler.php | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/assets/js/frontend/cart.js b/assets/js/frontend/cart.js index ae1432e03de..41d8d55b1fe 100644 --- a/assets/js/frontend/cart.js +++ b/assets/js/frontend/cart.js @@ -266,6 +266,7 @@ jQuery( function( $ ) { this.remove_coupon_clicked = this.remove_coupon_clicked.bind( this ); this.quantity_update = this.quantity_update.bind( this ); this.item_remove_clicked = this.item_remove_clicked.bind( this ); + this.item_restore_clicked = this.item_restore_clicked.bind( this ); this.update_cart = this.update_cart.bind( this ); $( document ).on( @@ -291,6 +292,10 @@ jQuery( function( $ ) { 'click', '.woocommerce-cart-form .product-remove > a', this.item_remove_clicked ); + $( document ).on( + 'click', + '.woocommerce-cart .restore-item', + this.item_restore_clicked ); $( document ).on( 'change input', '.woocommerce-cart-form .cart_item :input', @@ -538,6 +543,34 @@ jQuery( function( $ ) { unblock( $( 'div.cart_totals' ) ); } } ); + }, + + /** + * Handle when a restore item link is clicked. + * + * @param {Object} evt The JQuery event + */ + item_restore_clicked: function( evt ) { + evt.preventDefault(); + + var $a = $( evt.currentTarget ); + var $form = $( 'form.woocommerce-cart-form' ); + + block( $form ); + block( $( 'div.cart_totals' ) ); + + $.ajax( { + type: 'GET', + url: $a.attr( 'href' ), + dataType: 'html', + success: function( response ) { + update_wc_div( response ); + }, + complete: function() { + unblock( $form ); + unblock( $( 'div.cart_totals' ) ); + } + } ); } }; diff --git a/includes/class-wc-form-handler.php b/includes/class-wc-form-handler.php index 2e9f1fcf478..e65661cd1b4 100644 --- a/includes/class-wc-form-handler.php +++ b/includes/class-wc-form-handler.php @@ -462,7 +462,7 @@ class WC_Form_Handler { // Don't show undo link if removed item is out of stock. if ( $product->is_in_stock() && $product->has_enough_stock( $cart_item['quantity'] ) ) { $removed_notice = sprintf( __( '%s removed.', 'woocommerce' ), $item_removed_title ); - $removed_notice .= ' ' . __( 'Undo?', 'woocommerce' ) . ''; + $removed_notice .= ' ' . __( 'Undo?', 'woocommerce' ) . ''; } else { $removed_notice = sprintf( __( '%s removed.', 'woocommerce' ), $item_removed_title ); } From 002156d1092d8395b1984b44004f16766781be6e Mon Sep 17 00:00:00 2001 From: Claudio Sanches Date: Tue, 4 Jul 2017 16:34:58 -0300 Subject: [PATCH 2/2] Minify --- assets/js/admin/settings-views-html-settings-tax.min.js | 2 +- assets/js/frontend/cart.min.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/js/admin/settings-views-html-settings-tax.min.js b/assets/js/admin/settings-views-html-settings-tax.min.js index 5c6689e9d02..a7a37d71c8b 100644 --- a/assets/js/admin/settings-views-html-settings-tax.min.js +++ b/assets/js/admin/settings-views-html-settings-tax.min.js @@ -1 +1 @@ -!function(t,e,a,n){t(function(){String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")});var i=a.template("wc-tax-table-row"),r=a.template("wc-tax-table-row-empty"),o=a.template("wc-tax-table-pagination"),s=t(".wc_tax_rates"),d=t("#rates"),c=t('input[name="save"]'),l=t("#rates-pagination"),u=t("#rates-search .wc-tax-rates-search-field"),h=t(".submit .button-primary[type=submit]"),p=Backbone.Model.extend({changes:{},setRateAttribute:function(t,e,a){var n=_.indexBy(this.get("rates"),"tax_rate_id"),i={};n[t][e]!==a&&(i[t]={},i[t][e]=a,n[t][e]=a),this.logChanges(i)},logChanges:function(t){var e=this.changes||{};_.each(t,function(t,a){e[a]=_.extend(e[a]||{tax_rate_id:a},t)}),this.changes=e,this.trigger("change:rates")},getFilteredRates:function(){var t=this.get("rates"),e=u.val().toLowerCase();return e.length&&(t=_.filter(t,function(t){return-1!==_.toArray(t).join(" ").toLowerCase().indexOf(e)})),t=_.sortBy(t,function(t){return parseInt(t.tax_rate_order,10)})},block:function(){t(".wc_tax_rates").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){t(".wc_tax_rates").unblock()},save:function(){var t=this;t.block(),Backbone.ajax({method:"POST",dataType:"json",url:n+(n.indexOf("?")>0?"&":"?")+"action=woocommerce_tax_rates_save_changes",data:{current_class:e.current_class,wc_tax_nonce:e.wc_tax_nonce,changes:t.changes},success:function(e,a){"success"===a&&(f.set("rates",e.data.rates),f.trigger("change:rates"),f.changes={},f.trigger("saved:rates"),m.render()),t.unblock()}})}}),g=Backbone.View.extend({rowTemplate:i,per_page:e.limit,page:e.page,initialize:function(){var a=Math.ceil(_.toArray(this.model.get("rates")).length/this.per_page);this.qty_pages=0===a?1:a,this.page=this.sanitizePage(e.page),this.listenTo(this.model,"change:rates",this.setUnloadConfirmation),this.listenTo(this.model,"saved:rates",this.clearUnloadConfirmation),d.on("change autocompletechange",":input",{view:this},this.updateModelOnChange),u.on("keyup search",{view:this},this.onSearchField),l.on("click","a",{view:this},this.onPageChange),l.on("change","input",{view:this},this.onPageChange),t(window).on("beforeunload",{view:this},this.unloadConfirmation),h.on("click",{view:this},this.onSubmit),c.attr("disabled","disabled"),s.find(".insert").on("click",{view:this},this.onAddNewRow),s.find(".remove_tax_rates").on("click",{view:this},this.onDeleteRow),s.find(".export").on("click",{view:this},this.onExport)},render:function(){var a=this.model.getFilteredRates(),n=_.size(a),i=Math.ceil(n/this.per_page),s=0===n?0:this.per_page*(this.page-1),d=this.per_page*this.page,c=_.toArray(a).slice(s,d),u=this;this.$el.empty(),c.length?t.each(c,function(t,e){u.$el.append(u.rowTemplate(e))}):u.$el.append(r()),this.$el.find("td.country input").autocomplete({source:e.countries,minLength:2}),this.$el.find("td.state input").autocomplete({source:e.states,minLength:3}),this.$el.find("td.postcode input, td.city input").change(function(){t(this).attr("name",t(this).data("name"))}),i>1?l.html(o({qty_rates:n,current_page:this.page,qty_pages:i})):(l.empty(),u.page=1)},updateUrl:function(){if(window.history.replaceState){var t=e.base_url,a=u.val();1i}),_.map(r,function(t){return t.tax_rate_order++,l[t.tax_rate_id]=_.extend(l[t.tax_rate_id]||{},{tax_rate_order:t.tax_rate_order}),t})):(h.tax_rate_order=1+_.max(_.pluck(c,"tax_rate_order"),function(t){return parseInt(t,10)}),o.page=o.qty_pages),c[h.tax_rate_id]=h,l[h.tax_rate_id]=h,s.set("rates",c),s.logChanges(l),o.render()},onDeleteRow:function(a){var n,i,r=a.data.view,o=r.model,s=_.indexBy(o.get("rates"),"tax_rate_id"),c={};a.preventDefault(),(n=d.children(".current"))?(n.each(function(){i=t(this).data("id"),delete s[i],c[i]=_.extend(c[i]||{},{deleted:"deleted"})}),o.set("rates",s),o.logChanges(c),r.render()):window.alert(e.strings.no_rows_selected)},onSearchField:function(t){t.data.view.updateUrl(),t.data.view.render()},onPageChange:function(e){var a=t(e.currentTarget);e.preventDefault(),e.data.view.page=a.data("goto")?a.data("goto"):a.val(),e.data.view.render(),e.data.view.updateUrl()},onExport:function(a){var n="data:application/csv;charset=utf-8,"+e.strings.csv_data_cols.join(",")+"\n";return t.each(a.data.view.model.getFilteredRates(),function(t,a){var i="";i+=a.tax_rate_country+",",i+=a.tax_rate_state+",",i+=(a.postcode?a.postcode.join("; "):"")+",",i+=(a.city?a.city.join("; "):"")+",",i+=a.tax_rate+",",i+=a.tax_rate_name+",",i+=a.tax_rate_priority+",",i+=a.tax_rate_compound+",",i+=a.tax_rate_shipping+",",i+=e.current_class,n+=i+"\n"}),t(this).attr("href",encodeURI(n)),!0},setUnloadConfirmation:function(){this.needsUnloadConfirm=!0,c.removeAttr("disabled")},clearUnloadConfirmation:function(){this.needsUnloadConfirm=!1,c.attr("disabled","disabled")},unloadConfirmation:function(t){if(t.data.view.needsUnloadConfirm)return t.returnValue=e.strings.unload_confirmation_msg,window.event.returnValue=e.strings.unload_confirmation_msg,e.strings.unload_confirmation_msg},updateModelOnChange:function(e){var a=e.data.view.model,n=t(e.target),i=n.closest("tr").data("id"),r=n.data("attribute"),o=n.val();"city"!==r&&"postcode"!==r||(o=o.split(";"),o=t.map(o,function(t){return t.trim()})),"tax_rate_compound"!==r&&"tax_rate_shipping"!==r||(o=n.is(":checked")?1:0),a.setRateAttribute(i,r,o)},sanitizePage:function(t){return(t=parseInt(t,10))<1?t=1:t>this.qty_pages&&(t=this.qty_pages),t}}),f=new p({rates:e.rates}),m=new g({model:f,el:"#rates"});m.render()})}(jQuery,htmlSettingsTaxLocalizeScript,wp,ajaxurl); \ No newline at end of file +!function(t,e,a,n){t(function(){String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")});var i=a.template("wc-tax-table-row"),r=a.template("wc-tax-table-row-empty"),o=a.template("wc-tax-table-pagination"),s=t(".wc_tax_rates"),d=t("#rates"),c=t('input[name="save"]'),l=t("#rates-pagination"),u=t("#rates-search .wc-tax-rates-search-field"),h=t(".submit .button-primary[type=submit]"),p=Backbone.Model.extend({changes:{},setRateAttribute:function(t,e,a){var n=_.indexBy(this.get("rates"),"tax_rate_id"),i={};n[t][e]!==a&&(i[t]={},i[t][e]=a,n[t][e]=a),this.logChanges(i)},logChanges:function(t){var e=this.changes||{};_.each(t,function(t,a){e[a]=_.extend(e[a]||{tax_rate_id:a},t)}),this.changes=e,this.trigger("change:rates")},getFilteredRates:function(){var t=this.get("rates"),e=u.val().toLowerCase();return e.length&&(t=_.filter(t,function(t){return-1!==_.toArray(t).join(" ").toLowerCase().indexOf(e)})),t=_.sortBy(t,function(t){return parseInt(t.tax_rate_order,10)})},block:function(){t(".wc_tax_rates").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){t(".wc_tax_rates").unblock()},save:function(){var t=this;t.block(),Backbone.ajax({method:"POST",dataType:"json",url:n+(n.indexOf("?")>0?"&":"?")+"action=woocommerce_tax_rates_save_changes",data:{current_class:e.current_class,wc_tax_nonce:e.wc_tax_nonce,changes:t.changes},success:function(e,a){"success"===a&&(f.set("rates",e.data.rates),f.trigger("change:rates"),f.changes={},f.trigger("saved:rates"),m.render()),t.unblock()}})}}),g=Backbone.View.extend({rowTemplate:i,per_page:e.limit,page:e.page,initialize:function(){var a=Math.ceil(_.toArray(this.model.get("rates")).length/this.per_page);this.qty_pages=0===a?1:a,this.page=this.sanitizePage(e.page),this.listenTo(this.model,"change:rates",this.setUnloadConfirmation),this.listenTo(this.model,"saved:rates",this.clearUnloadConfirmation),d.on("change autocompletechange",":input",{view:this},this.updateModelOnChange),u.on("keyup search",{view:this},this.onSearchField),l.on("click","a",{view:this},this.onPageChange),l.on("change","input",{view:this},this.onPageChange),t(window).on("beforeunload",{view:this},this.unloadConfirmation),h.on("click",{view:this},this.onSubmit),c.attr("disabled","disabled"),s.find(".insert").on("click",{view:this},this.onAddNewRow),s.find(".remove_tax_rates").on("click",{view:this},this.onDeleteRow),s.find(".export").on("click",{view:this},this.onExport)},render:function(){var a=this.model.getFilteredRates(),n=_.size(a),i=Math.ceil(n/this.per_page),s=0===n?0:this.per_page*(this.page-1),d=this.per_page*this.page,c=_.toArray(a).slice(s,d),u=this;this.$el.empty(),c.length?t.each(c,function(t,e){u.$el.append(u.rowTemplate(e))}):u.$el.append(r()),this.$el.find("td.country input").autocomplete({source:e.countries,minLength:2}),this.$el.find("td.state input").autocomplete({source:e.states,minLength:3}),this.$el.find("td.postcode input, td.city input").change(function(){t(this).attr("name",t(this).data("name"))}),i>1?l.html(o({qty_rates:n,current_page:this.page,qty_pages:i})):(l.empty(),u.page=1)},updateUrl:function(){if(window.history.replaceState){var t=e.base_url,a=u.val();1i}),_.map(r,function(t){return t.tax_rate_order++,l[t.tax_rate_id]=_.extend(l[t.tax_rate_id]||{},{tax_rate_order:t.tax_rate_order}),t})):(h.tax_rate_order=1+_.max(_.pluck(c,"tax_rate_order"),function(t){return parseInt(t,10)}),o.page=o.qty_pages),c[h.tax_rate_id]=h,l[h.tax_rate_id]=h,s.set("rates",c),s.logChanges(l),o.render()},onDeleteRow:function(a){var n,i,r=a.data.view,o=r.model,s=_.indexBy(o.get("rates"),"tax_rate_id"),c={};a.preventDefault(),(n=d.children(".current"))?(n.each(function(){i=t(this).data("id"),delete s[i],c[i]=_.extend(c[i]||{},{deleted:"deleted"})}),o.set("rates",s),o.logChanges(c),r.render()):window.alert(e.strings.no_rows_selected)},onSearchField:function(t){t.data.view.updateUrl(),t.data.view.render()},onPageChange:function(e){var a=t(e.currentTarget);e.preventDefault(),e.data.view.page=a.data("goto")?a.data("goto"):a.val(),e.data.view.render(),e.data.view.updateUrl()},onExport:function(a){var n="data:application/csv;charset=utf-8,"+e.strings.csv_data_cols.join(",")+"\n";return t.each(a.data.view.model.getFilteredRates(),function(t,a){var i="";i+=a.tax_rate_country+",",i+=a.tax_rate_state+",",i+=(a.postcode?a.postcode.join("; "):"")+",",i+=(a.city?a.city.join("; "):"")+",",i+=a.tax_rate+",",i+=a.tax_rate_name+",",i+=a.tax_rate_priority+",",i+=a.tax_rate_compound+",",i+=a.tax_rate_shipping+",",i+=e.current_class,n+=i+"\n"}),t(this).attr("href",encodeURI(n)),!0},setUnloadConfirmation:function(){this.needsUnloadConfirm=!0,c.removeAttr("disabled")},clearUnloadConfirmation:function(){this.needsUnloadConfirm=!1,c.attr("disabled","disabled")},unloadConfirmation:function(t){if(t.data.view.needsUnloadConfirm)return t.returnValue=e.strings.unload_confirmation_msg,window.event.returnValue=e.strings.unload_confirmation_msg,e.strings.unload_confirmation_msg},updateModelOnChange:function(e){var a=e.data.view.model,n=t(e.target),i=n.closest("tr").data("id"),r=n.data("attribute"),o=n.val();"city"!==r&&"postcode"!==r||(o=o.split(";"),o=t.map(o,function(t){return t.trim()})),"tax_rate_compound"!==r&&"tax_rate_shipping"!==r||(o=n.is(":checked")?1:0),a.setRateAttribute(i,r,o)},sanitizePage:function(t){return t=parseInt(t,10),t<1?t=1:t>this.qty_pages&&(t=this.qty_pages),t}}),f=new p({rates:e.rates}),m=new g({model:f,el:"#rates"});m.render()})}(jQuery,htmlSettingsTaxLocalizeScript,wp,ajaxurl); \ No newline at end of file diff --git a/assets/js/frontend/cart.min.js b/assets/js/frontend/cart.min.js index 940ae360611..da2d3d653d1 100644 --- a/assets/js/frontend/cart.min.js +++ b/assets/js/frontend/cart.min.js @@ -1 +1 @@ -jQuery(function(t){if("undefined"==typeof wc_cart_params)return!1;var e=function(t){return wc_cart_params.wc_ajax_url.toString().replace("%%endpoint%%",t)},o=function(t){return t.is(".processing")||t.parents(".processing").length},c=function(t){o(t)||t.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},i=function(t){t.removeClass("processing").unblock()},a=function(e,o){var c=t.parseHTML(e),i=t(".woocommerce-cart-form",c),a=t(".cart_totals",c),s=t(".woocommerce-error, .woocommerce-message, .woocommerce-info",c);if(0!==t(".woocommerce-cart-form").length){if(o||t(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),0===i.length){if(t(".woocommerce-checkout").length)return void(window.location.href=window.location.href);var p=t(".cart-empty",c).closest(".woocommerce");t(".woocommerce-cart-form__contents").closest(".woocommerce").replaceWith(p),s.length>0&&n(s,t(".cart-empty").closest(".woocommerce"))}else t(".woocommerce-checkout").length&&t(document.body).trigger("update_checkout"),t(".woocommerce-cart-form").replaceWith(i),t(".woocommerce-cart-form").find('input[name="update_cart"]').prop("disabled",!0),s.length>0&&n(s),r(a);t(document.body).trigger("updated_wc_div")}else window.location.href=window.location.href},r=function(e){t(".cart_totals").replaceWith(e),t(document.body).trigger("updated_cart_totals")},n=function(e,o){o||(o=t(".woocommerce-cart-form")),o.before(e)},s={init:function(e){this.cart=e,this.toggle_shipping=this.toggle_shipping.bind(this),this.shipping_method_selected=this.shipping_method_selected.bind(this),this.shipping_calculator_submit=this.shipping_calculator_submit.bind(this),t(document).on("click",".shipping-calculator-button",this.toggle_shipping),t(document).on("change","select.shipping_method, input[name^=shipping_method]",this.shipping_method_selected),t(document).on("submit","form.woocommerce-shipping-calculator",this.shipping_calculator_submit),t(".shipping-calculator-form").hide()},toggle_shipping:function(){return t(".shipping-calculator-form").slideToggle("slow"),!1},shipping_method_selected:function(o){var a=o.currentTarget,n={};t("select.shipping_method, input[name^=shipping_method][type=radio]:checked, input[name^=shipping_method][type=hidden]").each(function(){n[t(a).data("index")]=t(a).val()}),c(t("div.cart_totals"));var s={security:wc_cart_params.update_shipping_method_nonce,shipping_method:n};t.ajax({type:"post",url:e("update_shipping_method"),data:s,dataType:"html",success:function(t){r(t)},complete:function(){i(t("div.cart_totals")),t(document.body).trigger("updated_shipping_method")}})},shipping_calculator_submit:function(e){e.preventDefault();var o=t(e.currentTarget);c(t("div.cart_totals")),c(o),t("").attr("type","hidden").attr("name","calc_shipping").attr("value","x").appendTo(o),t.ajax({type:o.attr("method"),url:o.attr("action"),data:o.serialize(),dataType:"html",success:function(t){a(t)},complete:function(){i(o),i(t("div.cart_totals"))}})}},p={init:function(){this.update_cart_totals=this.update_cart_totals.bind(this),this.input_keypress=this.input_keypress.bind(this),this.cart_submit=this.cart_submit.bind(this),this.submit_click=this.submit_click.bind(this),this.apply_coupon=this.apply_coupon.bind(this),this.remove_coupon_clicked=this.remove_coupon_clicked.bind(this),this.quantity_update=this.quantity_update.bind(this),this.item_remove_clicked=this.item_remove_clicked.bind(this),this.update_cart=this.update_cart.bind(this),t(document).on("wc_update_cart",this.update_cart),t(document).on("click",".woocommerce-cart-form input[type=submit]",this.submit_click),t(document).on("keypress",".woocommerce-cart-form input[type=number]",this.input_keypress),t(document).on("submit",".woocommerce-cart-form",this.cart_submit),t(document).on("click","a.woocommerce-remove-coupon",this.remove_coupon_clicked),t(document).on("click",".woocommerce-cart-form .product-remove > a",this.item_remove_clicked),t(document).on("change input",".woocommerce-cart-form .cart_item :input",this.input_changed),t('.woocommerce-cart-form input[name="update_cart"]').prop("disabled",!0)},input_changed:function(){t('.woocommerce-cart-form input[name="update_cart"]').prop("disabled",!1)},update_cart:function(e){var o=t(".woocommerce-cart-form");c(o),c(t("div.cart_totals")),t.ajax({type:o.attr("method"),url:o.attr("action"),data:o.serialize(),dataType:"html",success:function(t){a(t,e)},complete:function(){i(o),i(t("div.cart_totals"))}})},update_cart_totals:function(){c(t("div.cart_totals")),t.ajax({url:e("get_cart_totals"),dataType:"html",success:function(t){r(t)},complete:function(){i(t("div.cart_totals"))}})},input_keypress:function(t){13===t.keyCode&&(t.preventDefault(),this.cart_submit(t))},cart_submit:function(e){var c=t(document.activeElement),i=t("input[type=submit][clicked=true]"),a=t(e.currentTarget);if(a.is("form")||(a=t(e.currentTarget).parents("form")),0!==a.find(".woocommerce-cart-form__contents").length)return!o(a)&&void(i.is('input[name="update_cart"]')||c.is("input.qty")?(e.preventDefault(),this.quantity_update(a)):(i.is('input[name="apply_coupon"]')||c.is("#coupon_code"))&&(e.preventDefault(),this.apply_coupon(a)))},submit_click:function(e){t("input[type=submit]",t(e.target).parents("form")).removeAttr("clicked"),t(e.target).attr("clicked","true")},apply_coupon:function(o){c(o);var a=this,r=t("#coupon_code"),s=r.val(),p={security:wc_cart_params.apply_coupon_nonce,coupon_code:s};t.ajax({type:"POST",url:e("apply_coupon"),data:p,dataType:"html",success:function(e){t(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),n(e),t(document.body).trigger("applied_coupon",[s])},complete:function(){i(o),r.val(""),a.update_cart(!0)}})},remove_coupon_clicked:function(o){o.preventDefault();var a=this,r=t(o.currentTarget).closest(".cart_totals"),s=t(o.currentTarget).attr("data-coupon");c(r);var p={security:wc_cart_params.remove_coupon_nonce,coupon:s};t.ajax({type:"POST",url:e("remove_coupon"),data:p,dataType:"html",success:function(e){t(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),n(e),t(document.body).trigger("removed_coupon",[s]),i(r)},complete:function(){a.update_cart(!0)}})},quantity_update:function(e){c(e),c(t("div.cart_totals")),t("").attr("type","hidden").attr("name","update_cart").attr("value","Update Cart").appendTo(e),t.ajax({type:e.attr("method"),url:e.attr("action"),data:e.serialize(),dataType:"html",success:function(t){a(t)},complete:function(){i(e),i(t("div.cart_totals"))}})},item_remove_clicked:function(e){e.preventDefault();var o=t(e.currentTarget),r=o.parents("form");c(r),c(t("div.cart_totals")),t.ajax({type:"GET",url:o.attr("href"),dataType:"html",success:a,complete:function(){i(r),i(t("div.cart_totals"))}})}};s.init(p),p.init()}); \ No newline at end of file +jQuery(function(t){if("undefined"==typeof wc_cart_params)return!1;var e=function(t){return wc_cart_params.wc_ajax_url.toString().replace("%%endpoint%%",t)},o=function(t){return t.is(".processing")||t.parents(".processing").length},c=function(t){o(t)||t.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},i=function(t){t.removeClass("processing").unblock()},r=function(e,o){var c=t.parseHTML(e),i=t(".woocommerce-cart-form",c),r=t(".cart_totals",c),s=t(".woocommerce-error, .woocommerce-message, .woocommerce-info",c);if(0!==t(".woocommerce-cart-form").length){if(o||t(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),0===i.length){if(t(".woocommerce-checkout").length)return void(window.location.href=window.location.href);var p=t(".cart-empty",c).closest(".woocommerce");t(".woocommerce-cart-form__contents").closest(".woocommerce").replaceWith(p),s.length>0&&n(s,t(".cart-empty").closest(".woocommerce"))}else t(".woocommerce-checkout").length&&t(document.body).trigger("update_checkout"),t(".woocommerce-cart-form").replaceWith(i),t(".woocommerce-cart-form").find('input[name="update_cart"]').prop("disabled",!0),s.length>0&&n(s),a(r);t(document.body).trigger("updated_wc_div")}else window.location.href=window.location.href},a=function(e){t(".cart_totals").replaceWith(e),t(document.body).trigger("updated_cart_totals")},n=function(e,o){o||(o=t(".woocommerce-cart-form")),o.before(e)},s={init:function(e){this.cart=e,this.toggle_shipping=this.toggle_shipping.bind(this),this.shipping_method_selected=this.shipping_method_selected.bind(this),this.shipping_calculator_submit=this.shipping_calculator_submit.bind(this),t(document).on("click",".shipping-calculator-button",this.toggle_shipping),t(document).on("change","select.shipping_method, input[name^=shipping_method]",this.shipping_method_selected),t(document).on("submit","form.woocommerce-shipping-calculator",this.shipping_calculator_submit),t(".shipping-calculator-form").hide()},toggle_shipping:function(){return t(".shipping-calculator-form").slideToggle("slow"),!1},shipping_method_selected:function(o){var r=o.currentTarget,n={};t("select.shipping_method, input[name^=shipping_method][type=radio]:checked, input[name^=shipping_method][type=hidden]").each(function(){n[t(r).data("index")]=t(r).val()}),c(t("div.cart_totals"));var s={security:wc_cart_params.update_shipping_method_nonce,shipping_method:n};t.ajax({type:"post",url:e("update_shipping_method"),data:s,dataType:"html",success:function(t){a(t)},complete:function(){i(t("div.cart_totals")),t(document.body).trigger("updated_shipping_method")}})},shipping_calculator_submit:function(e){e.preventDefault();var o=t(e.currentTarget);c(t("div.cart_totals")),c(o),t("").attr("type","hidden").attr("name","calc_shipping").attr("value","x").appendTo(o),t.ajax({type:o.attr("method"),url:o.attr("action"),data:o.serialize(),dataType:"html",success:function(t){r(t)},complete:function(){i(o),i(t("div.cart_totals"))}})}},p={init:function(){this.update_cart_totals=this.update_cart_totals.bind(this),this.input_keypress=this.input_keypress.bind(this),this.cart_submit=this.cart_submit.bind(this),this.submit_click=this.submit_click.bind(this),this.apply_coupon=this.apply_coupon.bind(this),this.remove_coupon_clicked=this.remove_coupon_clicked.bind(this),this.quantity_update=this.quantity_update.bind(this),this.item_remove_clicked=this.item_remove_clicked.bind(this),this.item_restore_clicked=this.item_restore_clicked.bind(this),this.update_cart=this.update_cart.bind(this),t(document).on("wc_update_cart",this.update_cart),t(document).on("click",".woocommerce-cart-form input[type=submit]",this.submit_click),t(document).on("keypress",".woocommerce-cart-form input[type=number]",this.input_keypress),t(document).on("submit",".woocommerce-cart-form",this.cart_submit),t(document).on("click","a.woocommerce-remove-coupon",this.remove_coupon_clicked),t(document).on("click",".woocommerce-cart-form .product-remove > a",this.item_remove_clicked),t(document).on("click",".woocommerce-cart .restore-item",this.item_restore_clicked),t(document).on("change input",".woocommerce-cart-form .cart_item :input",this.input_changed),t('.woocommerce-cart-form input[name="update_cart"]').prop("disabled",!0)},input_changed:function(){t('.woocommerce-cart-form input[name="update_cart"]').prop("disabled",!1)},update_cart:function(e){var o=t(".woocommerce-cart-form");c(o),c(t("div.cart_totals")),t.ajax({type:o.attr("method"),url:o.attr("action"),data:o.serialize(),dataType:"html",success:function(t){r(t,e)},complete:function(){i(o),i(t("div.cart_totals"))}})},update_cart_totals:function(){c(t("div.cart_totals")),t.ajax({url:e("get_cart_totals"),dataType:"html",success:function(t){a(t)},complete:function(){i(t("div.cart_totals"))}})},input_keypress:function(t){13===t.keyCode&&(t.preventDefault(),this.cart_submit(t))},cart_submit:function(e){var c=t(document.activeElement),i=t("input[type=submit][clicked=true]"),r=t(e.currentTarget);if(r.is("form")||(r=t(e.currentTarget).parents("form")),0!==r.find(".woocommerce-cart-form__contents").length)return!o(r)&&void(i.is('input[name="update_cart"]')||c.is("input.qty")?(e.preventDefault(),this.quantity_update(r)):(i.is('input[name="apply_coupon"]')||c.is("#coupon_code"))&&(e.preventDefault(),this.apply_coupon(r)))},submit_click:function(e){t("input[type=submit]",t(e.target).parents("form")).removeAttr("clicked"),t(e.target).attr("clicked","true")},apply_coupon:function(o){c(o);var r=this,a=t("#coupon_code"),s=a.val(),p={security:wc_cart_params.apply_coupon_nonce,coupon_code:s};t.ajax({type:"POST",url:e("apply_coupon"),data:p,dataType:"html",success:function(e){t(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),n(e),t(document.body).trigger("applied_coupon",[s])},complete:function(){i(o),a.val(""),r.update_cart(!0)}})},remove_coupon_clicked:function(o){o.preventDefault();var r=this,a=t(o.currentTarget).closest(".cart_totals"),s=t(o.currentTarget).attr("data-coupon");c(a);var p={security:wc_cart_params.remove_coupon_nonce,coupon:s};t.ajax({type:"POST",url:e("remove_coupon"),data:p,dataType:"html",success:function(e){t(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),n(e),t(document.body).trigger("removed_coupon",[s]),i(a)},complete:function(){r.update_cart(!0)}})},quantity_update:function(e){c(e),c(t("div.cart_totals")),t("").attr("type","hidden").attr("name","update_cart").attr("value","Update Cart").appendTo(e),t.ajax({type:e.attr("method"),url:e.attr("action"),data:e.serialize(),dataType:"html",success:function(t){r(t)},complete:function(){i(e),i(t("div.cart_totals"))}})},item_remove_clicked:function(e){e.preventDefault();var o=t(e.currentTarget),a=o.parents("form");c(a),c(t("div.cart_totals")),t.ajax({type:"GET",url:o.attr("href"),dataType:"html",success:r,complete:function(){i(a),i(t("div.cart_totals"))}})},item_restore_clicked:function(e){e.preventDefault();var o=t(e.currentTarget),a=t("form.woocommerce-cart-form");c(a),c(t("div.cart_totals")),t.ajax({type:"GET",url:o.attr("href"),dataType:"html",success:function(t){r(t)},complete:function(){i(a),i(t("div.cart_totals"))}})}};s.init(p),p.init()}); \ No newline at end of file