1/** 2 * WP-Stripe 3 * 4 * @since 1.4 5 * 6 */ 7 8// var wp-stripe-key declared in DOM from localized script 9 10Stripe.setPublishableKey(wpstripekey); 11 12// Stripe Token Creation & Event Handling 13 14jQuery(document).ready(function ($) { 15 16 var resetStripeForm = function () { 17 $(".wp-stripe-payment-form").get(0).reset(); 18 $('.wp-stripe-payment-form .input-group').removeClass('stripe-valid stripe-invalid'); 19 }; 20 21 function stripeResponseHandler(status, response) { 22 if (response.error) { 23 $('.stripe-submit-button').prop("disabled", false).css("opacity", "1.0"); 24 $('.wp-stripe-notification').show().html('<div class="stripe-error">' + response.error.message + '</div>'); 25 } else { 26 var form$ = $(".wp-stripe-payment-form"); 27 var token = response['id']; 28 var amount = $(".wp-stripe-payment-form input[name=wp_stripe_price]:checked").val(); 29 if (amount) { 30 if (amount === 'other') { 31 amount = $('.wp-stripe-payment-form .other-price.wp-stripe-card-amount').val() 32 } 33 34 if ($(".section-make-a-donation .tips-price").length) { 35 var tips = $(".section-make-a-donation .tips-price").val(); 36 amount = parseFloat(amount) * parseFloat(tips); 37 } 38 form$.append("<input type='hidden' name='wp_stripe_amount' value='" + amount + "'>"); 39 } 40 form$.append("<input type='hidden' name='stripeToken' value='" + token + "' />"); 41 42 var newStripeForm = form$.serialize(); 43 44 $.ajax({ 45 type: "post", 46 dataType: "json", 47 url: ajaxurl, 48 data: newStripeForm, 49 beforeSend: function () { 50 $("body").removeClass("loaded"); 51 }, 52 success: function (response) { 53 $('.wp-stripe-notification').show().html(response); 54 $('.custom-form').hide(); 55 $('.stripe-submit-button').prop("disabled", false).css("opacity", "1.0"); 56 /*Form membership fees*/ 57 if ($("#msform").length) { 58 // Custom Data 59 var formData = new FormData($("#msform")[0]); 60 var NewFormData = new FormData(); 61 var inputPayAmounts = $("#table-member .block-membership-list .block-membership-input .input-amount:not(:disabled)"); 62 var dataArray = []; 63 inputPayAmounts.each(function (i, payAmount) { 64 var nameMembership = $(payAmount).prev().prev().val(); 65 var oppId = $(payAmount).prev().val(); 66 var amountValue = $(payAmount).val(); 67 var data = { 68 oppId: oppId, 69 pay_amount: amountValue, 70 name_membership: nameMembership 71 }; 72 dataArray.push(data); 73 }); 74 // Set data 75 var federation = formData.get('federation'); 76 var currency_name = formData.get('currency_name'); 77 var post_oppid = formData.get('post_oppid'); 78 var pay_secretariat = formData.get('pay_secretariat'); 79 var info_email = formData.get('info_email'); 80 var info_name = formData.get('info_name'); 81 NewFormData.append("objMemberData", JSON.stringify(dataArray)); 82 NewFormData.append("federation", federation); 83 NewFormData.append("currency_name", currency_name); 84 NewFormData.append("post_oppid", post_oppid); 85 NewFormData.append("pay_secretariat", pay_secretariat); 86 NewFormData.append("info_email", info_email); 87 NewFormData.append("info_name", info_name); 88 $.ajax({ 89 url: $("#msform").attr("action"), 90 loading: true, 91 type: "POST", 92 contentType: false, 93 processData: false, 94 data: NewFormData, 95 success: function (response) { 96 if (response && !response.error) { 97 $('#button-hidden-next').click(); 98 } else { 99 console.log(response.message); 100 } 101 }, 102 error: function (error) { 103 console.log(error); 104 } 105 }); 106 } 107 108 if ($('#wp_stripe_frogg').length) { 109 window.location.reload(); 110 } 111 112 if ($(".wp-stripe-payment-form-about").length) { 113 $('.wp-stripe-notification').hide(); 114 $(".form-group-text-link .here").attr("href", response.url); 115 window.open(response.url, '_blank'); 116 } 117 118 if ($(".wp-stripe-payment-form-gg").length) { 119 120 /*window.location.href = window.location.origin + '/donate/'; -- Commented by TouchSize */ 121 } 122 123 resetStripeForm(); 124 $("body").addClass("loaded"); 125 }, 126 error: function (res) { 127 res = res.responseJSON; 128 $("body").addClass("loaded"); 129 $('.wp-stripe-notification').show().html('<div class="stripe-error">' + res.message + '</div>'); 130 $('.stripe-submit-button').prop("disabled", false).css("opacity", "1.0"); 131 } 132 }); 133 134 } 135 } 136 137 $(".wp-stripe-payment-form").submit(function (event) { 138 if ($(".wp-stripe-payment-form").valid()) { 139 event.preventDefault(); 140 $(".wp-stripe-notification").hide(); 141 $('.stripe-submit-button').prop("disabled", true).css("opacity", "0.4"); 142 Stripe.createToken({ 143 name: $('.wp-stripe-name').val(), 144 number: $('.wp-stripe-card-number').val(), 145 cvc: $('.card_cvc').val(), 146 exp_month: $('.card-expiry-month').val(), 147 exp_year: $('.card-expiry-year').val() 148 }, stripeResponseHandler); 149 return false;
150 } 151 }); 152}); 153 154// Form Validation & Enhancement 155jQuery(document).ready(function ($) { 156 $('.wp-stripe-card-number').focusout(function () { 157 var cardValid = Stripe.validateCardNumber($(this).val()); 158 var cardType = Stripe.cardType($(this).val()); 159 160 if (cardValid) { 161 $(this).parents('.input-group').removeClass('stripe-invalid').addClass('stripe-valid'); 162 } else { 163 $(this).parents('.input-group').removeClass('stripe-valid').addClass('stripe-invalid'); 164 } 165 }); 166 167 // CVC Validation 168 $('.card-cvc').focusout(function () { 169 if (Stripe.validateCVC($(this).val())) { 170 $(this).parents('.input-group').removeClass('stripe-invalid').addClass('stripe-valid'); 171 } else { 172 $(this).parents('.input-group').removeClass('stripe-valid').addClass('stripe-invalid'); 173 } 174 }); 175 176 $(".form-group-text-link").on('click', '.here', function (e) { 177 e.preventDefault(); 178 var link = $(this).attr("href"); 179 if (link && link !== "#") { 180 window.open($(this).attr("href"), '_blank'); 181 } else { 182 $(".wp-stripe-payment-form-about").submit(); 183 } 184 }) 185}); 186
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.