При срабатывании update_checkout
в jQuery, страница оформления заказа обновляется деталями платежа, в которых удаляются введенные данные карты.
Я добавил пользовательский код для хранения и восстановления данных карты, но я вижу, что код существуетв plugins/woocommerce/assets/js/frontend/checkout.js
, который уже делает то же самое, но, кажется, не работает.
// Save payment details to a temporary object
var paymentDetails = {};
$( '.payment_box :input' ).each( function() {
var ID = $( this ).attr( 'id' );
if ( ID ) {
if ( $.inArray( $( this ).attr( 'type' ), [ 'checkbox', 'radio' ] ) !== -1 ) {
paymentDetails[ ID ] = $( this ).prop( 'checked' );
} else {
paymentDetails[ ID ] = $( this ).val();
}
}
});
// Fill in the payment details if possible without overwriting data if set.
if ( ! $.isEmptyObject( paymentDetails ) ) {
$( '.payment_box :input' ).each( function() {
var ID = $( this ).attr( 'id' );
if ( ID ) {
if ( $.inArray( $( this ).attr( 'type' ), [ 'checkbox', 'radio' ] ) !== -1 ) {
$( this ).prop( 'checked', paymentDetails[ ID ] ).change();
} else if ( null !== $( this ).val() && 0 === $( this ).val().length ) {
$( this ).val( paymentDetails[ ID ] ).change();
}
}
});
}
Данные карты должны быть восстановлены, когда они уже введены.