mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 18:16:38 +08:00
42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
import ErrorHandler from '../../../ppcp-button/resources/js/modules/ErrorHandler';
|
|
|
|
window.addEventListener('load', function() {
|
|
|
|
const oxxoButton = document.getElementById('ppcp-oxxo');
|
|
oxxoButton?.addEventListener('click', (event) => {
|
|
event.preventDefault();
|
|
|
|
const requiredFields = jQuery('form.woocommerce-checkout .validate-required:visible :input');
|
|
requiredFields.each((i, input) => {
|
|
jQuery(input).trigger('validate');
|
|
});
|
|
if (jQuery('form.woocommerce-checkout .validate-required.woocommerce-invalid:visible').length) {
|
|
const errorHandler = new ErrorHandler(OXXOConfig.error.generic);
|
|
errorHandler.clear();
|
|
errorHandler.message(OXXOConfig.error.js_validation);
|
|
return;
|
|
}
|
|
|
|
fetch(OXXOConfig.oxxo_endpoint, {
|
|
method: 'POST',
|
|
body: JSON.stringify({
|
|
nonce: OXXOConfig.oxxo_nonce,
|
|
})
|
|
}).then((res)=>{
|
|
return res.json();
|
|
}).then((data)=>{
|
|
if (!data.success) {
|
|
alert('Could not get payer action from PayPal: ' + JSON.stringify(data));
|
|
return;
|
|
}
|
|
|
|
window.open(
|
|
data.data.payer_action,
|
|
'_blank',
|
|
'popup'
|
|
);
|
|
|
|
document.querySelector('#place_order').click()
|
|
});
|
|
});
|
|
});
|