zen cart 1.5.8
square web pay 1.0.4
bootstrap 3.5.2
I have an issue where the terms and conditions do not need to be ticked for an order to go through. I think it is connected to JavaScript and using preventDefault method. I believe that this means that required fields are not checked when the form is submitted. I have resolved the issue by adding the following to includes/modules/pages/checkout_payment/jscript_square_webPay.php
original starting line 157
newCode:var verifyBuyerResult = document.createElement("input"); verifyBuyerResult.setAttribute("type", "hidden"); verifyBuyerResult.setAttribute("name", "verifyBuyerResult"); verifyBuyerResult.setAttribute("value", JSON.stringify(verificationToken)); document.querySelector('[name="checkout_payment"]').appendChild(verifyBuyerResult); cardButton.disabled = false; document.forms["checkout_payment"].submit();
Something similar may be required for one page checkout!Code:var verifyBuyerResult = document.createElement("input"); verifyBuyerResult.setAttribute("type", "hidden"); verifyBuyerResult.setAttribute("name", "verifyBuyerResult"); verifyBuyerResult.setAttribute("value", JSON.stringify(verificationToken)); document.querySelector('[name="checkout_payment"]').appendChild(verifyBuyerResult); cardButton.disabled = false; let isFormValid = document.forms["checkout_payment"].checkValidity(); if (isFormValid) { document.forms["checkout_payment"].submit(); } else { document.forms["checkout_payment"].reportValidity(); }


Reply With Quote

