Wpis z mikrobloga

To jest fragment kodu #woocommerce który tworzy ajaxowo nowy Order i robi przekierowanie.

Czy da się zrobić coś takiego abym wbił się w handler "checkoutplaceordersuccess" i żeby jQuery POCZEKAŁ aż zakończą się moje ASYNCHRONICZNE żądania i dopiero następnie wykonała się reszta kodu?

Oczywiście nie mam możliwości edycji oryginalnego kodu:

$.ajax({
type: 'POST',
url: wc_checkout_params.checkout_url,
data: $form.serialize(),
dataType: 'json',
success: function( result ) {
// Detach the unload handler that prevents a reload / redirect
wc_checkout_form.detachUnloadEventsOnSubmit();

try {
if ( 'success' === result.result && $form.triggerHandler( 'checkout_place_order_success', result ) !== false ) {
if ( -1 === result.redirect.indexOf( 'https://' ) || -1 === result.redirect.indexOf( 'http://' ) ) {
window.location = result.redirect;
} else {
window.location = decodeURI( result.redirect );
}
} else if ( 'failure' === result.result ) {
throw 'Result failure';
} else {
throw 'Invalid response';
}
} catch( err ) {
// Reload page
if ( true === result.reload ) {
window.location.reload();
return;
}

// Trigger update in case we need a fresh nonce
if ( true === result.refresh ) {
$( document.body ).trigger( 'update_checkout' );
}

// Add new errors
if ( result.messages ) {
wc_checkout_form.submit_error( result.messages );
} else {
wc_checkout_form.submit_error( '<div class="woocommerce-error">' + wc_checkout_params.i18n_checkout_error + '</div>' ); // eslint-disable-line max-len
}
}
},
error: function( jqXHR, textStatus, errorThrown ) {
// Detach the unload handler that prevents a reload / redirect
wc_checkout_form.detachUnloadEventsOnSubmit();

wc_checkout_form.submit_error(
'<div class="woocommerce-error">' +
( errorThrown || wc_checkout_params.i18n_checkout_error ) +
'</div>'
);
}
});

#javascript #frontend
czlowiekzlisciemnaglowie - To jest fragment kodu #woocommerce który tworzy ajaxowo no...

źródło: phpstorm64_3nHcBGb0ee

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach