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

1 line
6.3 KiB
JavaScript

jQuery(document).ready(function(e){function i(){r&&r.abort();if(e("select#shipping_method").size()>0)var t=e("select#shipping_method").val();else var t=e("input[name=shipping_method]:checked").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();if(e("#shiptobilling input").is(":checked")||e("#shiptobilling input").size()==0)var u=i,a=s,f=o;else var u=e("#shipping_country").val(),a=e("#shipping_state").val(),f=e("input#shipping_postcode").val();e("#order_methods, #order_review").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_params.ajax_loader_url+") no-repeat center",opacity:.6}});var l={action:"woocommerce_update_order_review",security:woocommerce_params.update_order_review_nonce,shipping_method:t,payment_method:n,country:i,state:s,postcode:o,s_country:u,s_state:a,s_postcode:f,post_data:e("form.checkout").serialize()};r=e.ajax({type:"POST",url:woocommerce_params.ajax_url,data:l,success:function(t){e("#order_review").after(t).remove();e("#order_review input[name=payment_method]:checked").click();e("body").trigger("updated_checkout")}})}function s(){n=!1;e("body").trigger("update_checkout")}var t,n=!1,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!1});e("a.showcoupon").click(function(){e(".checkout_coupon").slideToggle();return!1});e("#shiptobilling input").change(function(){e("div.shipping_address").hide();e(this).is(":checked")||e("div.shipping_address").slideDown()}).change();if(woocommerce_params.option_guest_checkout=="yes"){e("div.create-account").hide();e("input#createaccount").change(function(){e("div.create-account").hide();e(this).is(":checked")&&e("div.create-account").slideDown()}).change()}e(".payment_methods input.input-radio").live("click",function(){e("div.payment_box").filter(":visible").slideUp(250);e(this).is(":checked")&&e("div.payment_box."+e(this).attr("ID")).slideDown(250)});e("#order_review input[name=payment_method]:checked").click();e("select#shipping_method, input[name=shipping_method], #shiptobilling input, .update_totals_on_change select").live("change",function(){clearTimeout(t);e("body").trigger("update_checkout")});e(".update_totals_on_change input").live("change",function(){if(n){clearTimeout(t);e("body").trigger("update_checkout")}});e(".update_totals_on_change input").live("keydown",function(e){var r=e.keyCode||e.which;if(r=="9")return;n=!0;clearTimeout(t);t=setTimeout(s,"1000")});woocommerce_params.is_checkout==1&&e("body").trigger("update_checkout");e("form.checkout_coupon").submit(function(){var t=e(this);if(t.is(".processing"))return!1;t.addClass("processing").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_params.ajax_loader_url+") no-repeat center",opacity:.6}});var n={action:"woocommerce_apply_coupon",security:woocommerce_params.apply_coupon_nonce,coupon_code:t.find("input[name=coupon_code]").val()};e.ajax({type:"POST",url:woocommerce_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!1});e("form.checkout").submit(function(){clearTimeout(t);var n=e(this);if(n.is(".processing"))return!1;if(n.triggerHandler("checkout_place_order")!==!1&&n.triggerHandler("checkout_place_order_"+e("#order_review input[name=payment_method]:checked").val())!==!1){n.addClass("processing");var r=n.data();r["blockUI.isBlocked"]!=1&&n.block({message:null,overlayCSS:{background:"#fff url("+woocommerce_params.ajax_loader_url+") no-repeat center",opacity:.6}});e.ajax({type:"POST",url:woocommerce_params.checkout_url,data:n.serialize(),success:function(t){try{result=e.parseJSON(t);if(result.result=="success")window.location=decodeURI(result.redirect);else{if(result.result!="failure")throw"Invalid response";e(".woocommerce_error, .woocommerce_message").remove();n.prepend(result.messages);n.removeClass("processing").unblock();result.refresh=="true"&&e("body").trigger("update_checkout");e("html, body").animate({scrollTop:e("form.checkout").offset().top-100},1e3)}}catch(r){e(".woocommerce_error, .woocommerce_message").remove();n.prepend(t);n.removeClass("processing").unblock();e("html, body").animate({scrollTop:e("form.checkout").offset().top-100},1e3)}},dataType:"html"})}return!1});var o=woocommerce_params.locale.replace(/&quot;/g,'"'),u=e.parseJSON(o),a=' <abbr class="required" title="'+woocommerce_params.required_text+'">*</abbr>';e("body").bind("country_to_state_changing",function(t,n,r){var i=r;if(u[n])var s=u[n];else var s=u["default"];var o={address_1:"#billing_address_1_field, #shipping_address_1_field",address_2:"#billing_address_2_field, #shipping_address_2_field",state:"#billing_state_field, #shipping_state_field",postcode:"#billing_postcode_field, #shipping_postcode_field",city:"#billing_city_field, #shipping_city_field"};e.each(o,function(e,t){var n=i.find(t);if(s[e]){s[e].label&&n.find("label").html(s[e].label);s[e].placeholder&&n.find("input").attr("placeholder",s[e].placeholder);n.find("label abbr").remove();(typeof s[e]["required"]=="undefined"||s[e]["required"]==1)&&n.find("label").append(a);e!=="state"&&(s[e]["hidden"]==1?n.fadeOut(200).find("input").val(""):n.fadeIn(500))}else if(u["default"][e]){u["default"][e]["required"]==1&&n.find("label abbr").size()==0&&n.find("label").append(a);e!=="state"&&(typeof u["default"][e]["hidden"]=="undefined"||u["default"][e]["hidden"]==0)&&n.fadeIn(500)}});var f=i.find("#billing_postcode_field, #shipping_postcode_field"),l=i.find("#billing_city_field, #shipping_city_field");if(s.postcode_before_city){if(l.is(".form-row-first")){l.fadeOut(200,function(){l.removeClass("form-row-first").addClass("form-row-last").insertAfter(f).fadeIn(500)});f.fadeOut(200,function(){f.removeClass("form-row-last").addClass("form-row-first").fadeIn(500)})}}else if(l.is(".form-row-last")){l.fadeOut(200,function(){l.removeClass("form-row-last").addClass("form-row-first").insertBefore(f).fadeIn(500)});f.fadeOut(200,function(){f.removeClass("form-row-first").addClass("form-row-last").fadeIn(500)})}})});