1class WPECStripeHandler{constructor(btnData,wpecHandler){this.btnData=btnData;this.wpecHandler=wpecHandler;this.ajaxUrl=ppecFrontVars.ajaxUrl;this.buttonId=btnData.id;document.dispatchEvent(new CustomEvent('wpec_before_render_stripe_button',{detail:{handler:this,}}));this.render();} 2render(){const checkoutBtnCont=document.getElementById(this.buttonId);if(!checkoutBtnCont){console.log("Unable to render stripe checkout button.");return;} 3const checkoutBtn=document.createElement('button');const btnWidth=this.btnData?.btnStyle?.width?this.btnData.btnStyle.width+'px':'150px';const btnText=this.btnData?.btnStyle?.label?this.btnData.btnStyle.label:'Stripe Checkout';const btnClasses=this.btnData?.btn_classes?this.btnData.btn_classes:[];checkoutBtn.style.width=btnWidth;checkoutBtn.innerText=btnText;checkoutBtn.classList.add(...btnClasses);checkoutBtn.addEventListener('click',this.onStripeCheckout);checkoutBtnCont.appendChild(checkoutBtn);} 4onStripeCheckout=async(e)=>{e.preventDefault();this.wpecHandler.calcTotal();this.wpecHandler.displayErrors();if(this.hasInputErrors()){return;} 5e.target.disabled=true;const order_data={total:this.wpecHandler.data.total,quantity:this.wpecHandler.data.quantity,currency_code:this.wpecHandler.data.currency,};const payload={action:'wpec_stripe_create_checkout_session',wpec_data:JSON.stringify(this.wpecHandler.data),data:JSON.stringify(order_data),nonce:wpec_stripe_frontend_vars?.nonce,};document.dispatchEvent(new CustomEvent('wpec_process_stripe_checkout',{detail:{handler:this,paymentData:payload,}}));try{let response=await fetch(this.ajaxUrl,{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded',},body:new URLSearchParams(payload),});if(!response.ok){alert('Stripe Checkout Error!');console.log(response);return;} 6response=await response.json();if(!response.success){alert(response.data.message);e.target.disabled=false;} 7if(typeof response.data.redirect_url!=='undefined'){window.location.href=response.data.redirect_url;}}catch(error){alert("HTTP error occurred during AJAX request. Error code: "+e.status);console.log(error.message);e.target.disabled=false;}} 8hasInputErrors(){const allErrorInputs=[...this.wpecHandler.getScCont().querySelectorAll('.hasError')];const errInputs=allErrorInputs.filter(el=>!el.closest('.wpec-manual-checkout-form'));const errInput=errInputs.length?errInputs[0]:null;if(errInput){errInput.focus();errInput.dispatchEvent(new Event('change'));return true;} 9return false;}}
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.