mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 18:16:38 +08:00
49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
|
class CreditCardRenderer {
|
||
|
|
||
|
constructor(defaultConfig) {
|
||
|
this.defaultConfig = defaultConfig;
|
||
|
}
|
||
|
|
||
|
render(wrapper, contextConfig) {
|
||
|
|
||
|
if (
|
||
|
wrapper === null
|
||
|
|| typeof paypal.HostedFields === 'undefined'
|
||
|
|| ! paypal.HostedFields.isEligible()
|
||
|
|| document.querySelector(wrapper) === null
|
||
|
) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
//ToDo: Styles
|
||
|
paypal.HostedFields.render({
|
||
|
createOrder: contextConfig.createOrder,
|
||
|
fields: {
|
||
|
number: {
|
||
|
selector: '#ppcp-credit-card',
|
||
|
placeholder: this.defaultConfig.hosted_fields.labels.credit_card_number,
|
||
|
},
|
||
|
cvv: {
|
||
|
selector: '#ppcp-cvv',
|
||
|
placeholder: this.defaultConfig.hosted_fields.labels.cvv,
|
||
|
},
|
||
|
expirationDate: {
|
||
|
selector: '#ppcp-expiration-date',
|
||
|
placeholder: this.defaultConfig.hosted_fields.labels.mm_yyyy,
|
||
|
}
|
||
|
}
|
||
|
}).then(hostedFields => {
|
||
|
document.querySelector(wrapper).addEventListener(
|
||
|
'submit',
|
||
|
event => {
|
||
|
event.preventDefault();
|
||
|
hostedFields.submit().then(payload => {
|
||
|
payload.orderID = payload.orderId;
|
||
|
return contextConfig.onApprove(payload);
|
||
|
});
|
||
|
}
|
||
|
);
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
export default CreditCardRenderer;
|