jQuery( function( $ ) { 'use strict'; window.wc_sb_order_status = { xhr: false, attempts: 0, /** * Initialize the checking */ init: function() { this.checkPayment( function ( err, data ) { var status_elm = $( '#order-status-checking' ), success_elm = $( '#order-success' ), failed_elm = $( '#order-failed' ); switch ( data.state ) { case 'paid': status_elm.hide(); success_elm.show(); break; case 'failed': case 'aborted': status_elm.hide(); failed_elm.append("<p>" + data.message + "</p>"); failed_elm.show(); break; default: window.wc_sb_order_status.attempts++; if ( window.wc_sb_order_status.attempts > 6) { return; } setTimeout(function () { window.wc_sb_order_status.init(); }, 10000); } } ); }, /** * Check payment * @return {JQueryPromise<any>} */ checkPayment: function ( callback ) { $( '.woocommerce-order' ).block( { message: WC_Gateway_Swedbank_Pay_Order_Status.check_message, overlayCSS: { background: '#fff', opacity: 0.6 } } ); return $.ajax( { type: 'POST', url: WC_Gateway_Swedbank_Pay_Order_Status.ajax_url, data: { action: 'swedbank_pay_check_payment', nonce: WC_Gateway_Swedbank_Pay_Order_Status.nonce, order_id: WC_Gateway_Swedbank_Pay_Order_Status.order_id, order_key: WC_Gateway_Swedbank_Pay_Order_Status.order_key, }, dataType: 'json' } ).always( function() { $( '.woocommerce-order' ).unblock(); } ).done( function ( response ) { callback( null, response.data ); } ); }, }; $(document).ready( function () { window.wc_sb_order_status.init(); } ); } );