var a2wl_reload_page_after_ajax = false; jQuery(function ($) { var get_id_from_link_anchor = function(el){ var jq_el = $(el); if ( typeof jq_el.attr('id') == "undefined" && jq_el.attr('href').substr(0,1) == "#" ){ var id = jq_el.attr('href').substr(1); //var id = jq_el.attr('href').substr(1).split('-'); } else var id = jq_el.attr('id').split('-')[1]; return id; } $(document).on("click", ".a2wl-order-info", function () { var id = get_id_from_link_anchor(this); $.a2wl_show_order(id); return false; }); $(document).on("click", ".a2wl-aliexpress-sync", function () { var item_sync_btn = $(this); item_sync_btn.prop("disabled",true); var ext_id = get_id_from_link_anchor(this); var item_info_btn = $(this).siblings('.a2wl-order-info')[0], id = get_id_from_link_anchor(item_info_btn); if (typeof a2wl_get_order_tracking_code !== "undefined") { ext_id_array = ext_id.split('-'); data = []; for (k in ext_id_array) { ext_id = ext_id_array[k]; data.push({'ext_order_id':ext_id}); } a2wl_get_next_tracking_code(data, 0, 200, function(index, ext_id, tracking_codes, status){ if (tracking_codes && tracking_codes.length>0){ item_sync_btn.hide(); a2wl_save_tracking_code(id, tracking_codes, function(res){ if (res !== null) { if (res.state == 'ok') { alert(a2wl_script_data.lang.tracking_sync_done + ' ['+ext_id+']'); } else { alert(res.message); } } }); } else { if (status == 500) { alert(a2wl_script_data.lang.error_cant_do_tracking_sync); } else if (status == 404){ alert(a2wl_script_data.lang.error_didnt_do_find_alix_order_num+data.ext_order_id); } else if (status == 401){ alert(a2wl_script_data.lang.error_cant_do_tracking_sync_login_to_account); } else if (status == 403) alert(a2wl_script_data.lang.error_403_code+data.ext_order_id); else { alert(a2wl_script_data.lang.no_tracking_codes_for_order); } item_sync_btn.prop("disabled",false); } }); } else { item_sync_btn.prop("disabled",false); alert(a2wl_script_data.lang.error_please_install_new_extension); } return false; }); $.a2wl_show_order = function (id) { $('
').dialog({ dialogClass: 'a2wl-dialog', modal: true, width: "400px", title: a2wl_script_data.lang.aliexpress_info + ": " + id, open: function () { $('#a2wl-dialog' + id).html(a2wl_script_data.lang.please_wait_data_loads); var data = {'action': 'a2wl_order_info', 'id': id}; $.post(ajaxurl, data, function (response) { var json = jQuery.parseJSON(response); if (json.state === 'error') { console.log(json); } else { $('#a2wl-dialog' + json.data.id).html(json.data.content.join('
')); } }); }, close: function (event, ui) { $("#a2wl-dialog" + id).remove(); }, buttons: { Ok: function () { $(this).dialog("close"); } } }); return false; }; var sync_btn = $('#a2wl_bulk_order_sync_manual'); sync_btn.on('click', function(){ sync_btn.prop("disabled",true); if (typeof a2wl_get_order_tracking_code !== "undefined") { sync_btn.val(a2wl_script_data.lang.please_wait); a2wl_get_fulfilled_orders(function(data){ var cnt = data.length; sync_btn.val(a2wl_script_data.lang.sync_process + ' 0/' + cnt + '...'); if (cnt > 0 ) a2wl_get_next_tracking_code(data, 0, 200, function(index, ext_id, tracking_codes, status){ if (status == 500) { alert(a2wl_script_data.lang.error_cant_do_tracking_sync); sync_btn.val(a2wl_script_data.lang.tracking_sync); sync_btn.prop("disabled",false); return false; } if (status == 404) console.log(a2wl_script_data.lang.error_didnt_do_find_alix_order_num+data[index].ext_order_id); if (status == 401) { alert(a2wl_script_data.lang.error_cant_do_tracking_sync_login_to_account); sync_btn.val(a2wl_script_data.lang.tracking_sync); sync_btn.prop("disabled",false) return false; } if (status == 403) console.log(a2wl_script_data.lang.error_403_code+data[index].ext_order_id); sync_btn.val(a2wl_script_data.lang.sync_process + ' ' + (index+1) + '/' + cnt + '...'); if ( index === cnt-1 ) { sync_btn.val(a2wl_script_data.lang.sync_done); sync_btn.prop("disabled",false); } if (tracking_codes && tracking_codes.length>0){ a2wl_save_tracking_code(data[index].order_id, tracking_codes, function(res){ if (res !== null) { if (res.state == 'error') { console.log(res.message); } } }); } }); else { sync_btn.val(a2wl_script_data.lang.tracking_sync); sync_btn.prop("disabled",false); } }); } else { sync_btn.val(a2wl_script_data.lang.tracking_sync); alert(a2wl_script_data.lang.error_please_install_new_extension); } return false; }); var a2wl_get_next_tracking_code = function(data, i, status_code, callback_func){ if ((status_code == 200 || status_code == 404 || status_code == 403) && i < data.length) { a2wl_get_order_tracking_code(data[i].ext_order_id, function( response){ callback_func(i, data[i].ext_order_id, response.tracking_codes, response.status_code); return a2wl_get_next_tracking_code(data, i+1, response.status_code, callback_func); }) } return true; }; var a2wl_get_fulfilled_orders = function(callback_func){ var data = {'action': 'a2wl_get_fulfilled_orders'}; jQuery.post(ajaxurl, data).done(function (response) { var json = jQuery.parseJSON(response); if (json.state !== 'ok') { console.log(json); } if (json.state === 'error') { //do smth } else { callback_func(json.data); } }).fail(function (xhr, status, error) { }); } var a2wl_save_tracking_code = function(id, tracking_codes, func){ var data = {'action': 'a2wl_save_tracking_code', 'id' : id, 'tracking_codes' : tracking_codes}; jQuery.post(ajaxurl, data).done(function (response) { var json = jQuery.parseJSON(response); func(json); }).fail(function (xhr, status, error) { func(null); }); } });