woocommerce/assets/js/frontend/checkout.min.js

1 line
7.7 KiB
JavaScript

jQuery(function(e){function i(){if(r)r.abort();var t=[];e("select.shipping_method, input[name^=shipping_method][type=radio]:checked, input[name^=shipping_method][type=hidden]").each(function(n,r){t[e(this).data("index")]=e(this).val()});var n=e("#order_review input[name=payment_method]:checked").val(),i=e("#billing_country").val(),s=e("#billing_state").val(),o=e("input#billing_postcode").val(),u=e("#billing_city").val(),a=e("input#billing_address_1").val(),f=e("input#billing_address_2").val(),l,c,h,p,d,v;if(e("#ship-to-different-address input").is(":checked")||e("#ship-to-different-address input").size()===0){l=e("#shipping_country").val();c=e("#shipping_state").val();h=e("input#shipping_postcode").val();p=e("#shipping_city").val();d=e("input#shipping_address_1").val();v=e("input#shipping_address_2").val()}else{l=i;c=s;h=o;p=u;d=a;v=f}e("#order_methods, #order_review").block({message:null,overlayCSS:{background:"#fff url("+wc_checkout_params.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}});var m={action:"woocommerce_update_order_review",security:wc_checkout_params.update_order_review_nonce,shipping_method:t,payment_method:n,country:i,state:s,postcode:o,city:u,address:a,address_2:f,s_country:l,s_state:c,s_postcode:h,s_city:p,s_address:d,s_address_2:v,post_data:e("form.checkout").serialize()};r=e.ajax({type:"POST",url:wc_checkout_params.ajax_url,data:m,success:function(t){if(t){var n=e(e.parseHTML(e.trim(t)));e("#order_review").html(n.html());e("#order_review").find("input[name=payment_method]:checked").click();e("body").trigger("updated_checkout")}}})}function s(){var t=true;if(e(n).size()){$required_siblings=e(n).closest(".form-row").siblings(".address-field.validate-required");if($required_siblings.size()){$required_siblings.each(function(){if(e(this).find("input.input-text").val()===""||e(this).find("input.input-text").val()==="undefined"){t=false}})}}if(t){n=false;e("body").trigger("update_checkout")}}e.blockUI.defaults.overlayCSS.cursor="default";if(typeof wc_checkout_params==="undefined")return false;var t,n=false,r;e("body").bind("update_checkout",function(){clearTimeout(t);i()});e("p.password, form.login, .checkout_coupon, div.shipping_address").hide();e("input.show_password").change(function(){e("p.password").slideToggle()});e("a.showlogin").click(function(){e("form.login").slideToggle();return false});e("a.showcoupon").click(function(){e(".checkout_coupon").slideToggle(400,function(){e("#coupon_code").focus()});return false});e("#ship-to-different-address input").change(function(){e("div.shipping_address").hide();if(e(this).is(":checked")){e("div.shipping_address").slideDown()}}).change();if(wc_checkout_params.option_guest_checkout==="yes"){e("div.create-account").hide();e("input#createaccount").change(function(){e("div.create-account").hide();if(e(this).is(":checked")){e("div.create-account").slideDown()}}).change()}e("#order_review").on("click",".payment_methods input.input-radio",function(){if(e(".payment_methods input.input-radio").length>1){var t=e("div.payment_box."+e(this).attr("ID"));if(e(this).is(":checked")&&!t.is(":visible")){e("div.payment_box").filter(":visible").slideUp(250);if(e(this).is(":checked")){e("div.payment_box."+e(this).attr("ID")).slideDown(250)}}}else{e("div.payment_box").show()}if(e(this).data("order_button_text")){e("#place_order").val(e(this).data("order_button_text"))}else{e("#place_order").val(e("#place_order").data("value"))}}).find("input[name=payment_method]:checked").click();e("form.checkout").on("input change","select.shipping_method, input[name^=shipping_method], #ship-to-different-address input, .update_totals_on_change select",function(){clearTimeout(t);n=false;e("body").trigger("update_checkout")}).on("input change",".address-field input.input-text, .update_totals_on_change input.input-text",function(){if(n){s()}}).on("input change",".address-field select",function(){n=this;s()}).on("keydown",".address-field input.input-text, .update_totals_on_change input.input-text",function(e){var r=e.keyCode||e.which;if(r==="9"){return}n=this;clearTimeout(t);t=setTimeout(s,"1000")}).on("blur input change",".input-text, select",function(){var t=e(this),n=t.closest(".form-row"),r=true;if(n.is(".validate-required")){if(t.val()===""){n.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-required-field");r=false}}if(n.is(".validate-email")){if(t.val()){var i=new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);if(!i.test(t.val())){n.removeClass("woocommerce-validated").addClass("woocommerce-invalid woocommerce-invalid-email");r=false}}}if(r){n.removeClass("woocommerce-invalid woocommerce-invalid-required-field").addClass("woocommerce-validated")}}).submit(function(){clearTimeout(t);var n=e(this);if(n.is(".processing")){return false}if(n.triggerHandler("checkout_place_order")!==false&&n.triggerHandler("checkout_place_order_"+e("#order_review input[name=payment_method]:checked").val())!==false){n.addClass("processing");var r=n.data();if(r["blockUI.isBlocked"]!=1){n.block({message:null,overlayCSS:{background:"#fff url("+wc_checkout_params.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}})}e.ajax({type:"POST",url:wc_checkout_params.checkout_url,data:n.serialize(),success:function(t){var r="";try{if(t.indexOf("<!--WC_START-->")>=0)t=t.split("<!--WC_START-->")[1];if(t.indexOf("<!--WC_END-->")>=0)t=t.split("<!--WC_END-->")[0];r=e.parseJSON(t);if(r.result==="success"){window.location=decodeURI(r.redirect)}else if(r.result==="failure"){throw"Result failure"}else{throw"Invalid response"}}catch(i){if(r.reload==="true"){window.location.reload();return}e(".woocommerce-error, .woocommerce-message").remove();if(r.messages){n.prepend(r.messages)}else{n.prepend(t)}n.removeClass("processing").unblock();n.find(".input-text, select").blur();e("html, body").animate({scrollTop:e("form.checkout").offset().top-100},1e3);if(r.refresh==="true")e("body").trigger("update_checkout");e("body").trigger("checkout_error")}},dataType:"html"})}return false});e("form.checkout_coupon").submit(function(){var t=e(this);if(t.is(".processing"))return false;t.addClass("processing").block({message:null,overlayCSS:{background:"#fff url("+wc_checkout_params.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}});var n={action:"woocommerce_apply_coupon",security:wc_checkout_params.apply_coupon_nonce,coupon_code:t.find("input[name=coupon_code]").val()};e.ajax({type:"POST",url:wc_checkout_params.ajax_url,data:n,success:function(n){e(".woocommerce-error, .woocommerce-message").remove();t.removeClass("processing").unblock();if(n){t.before(n);t.slideUp();e("body").trigger("update_checkout")}},dataType:"html"});return false});e("body").bind("init_checkout",function(){e("#billing_country, #shipping_country, .country_to_state").change();e("body").trigger("update_checkout")});if(wc_checkout_params.is_checkout===1){e("body").trigger("init_checkout")}})