mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-12 01:18:39 +08:00
refactor tracking integration
This commit is contained in:
parent
1dffac6378
commit
c8e87120d4
24 changed files with 2915 additions and 964 deletions
49
modules/ppcp-compat/resources/js/tracking-compat.js
Normal file
49
modules/ppcp-compat/resources/js/tracking-compat.js
Normal file
|
@ -0,0 +1,49 @@
|
|||
document.addEventListener(
|
||||
'DOMContentLoaded',
|
||||
() => {
|
||||
const config = PayPalCommerceGatewayOrderTrackingCompat;
|
||||
|
||||
const orderTrackingContainerId = "ppcp_order-tracking";
|
||||
const orderTrackingContainerSelector = "#ppcp_order-tracking .ppcp-tracking-column.shipments";
|
||||
const gzdSaveButton = document.getElementById('order-shipments-save');
|
||||
const loadLocation = location.href + " " + orderTrackingContainerSelector + ">*";
|
||||
const gzdSyncEnabled = config.gzd_sync_enabled;
|
||||
const wcShipmentSyncEnabled = config.wc_shipment_sync_enabled;
|
||||
const wcShipmentSaveButton = document.querySelector('#woocommerce-shipment-tracking .button-save-form');
|
||||
|
||||
const toggleLoaderVisibility = function() {
|
||||
const loader = document.querySelector('.ppcp-tracking-loader');
|
||||
if (loader) {
|
||||
if (loader.style.display === 'none' || loader.style.display === '') {
|
||||
loader.style.display = 'block';
|
||||
} else {
|
||||
loader.style.display = 'none';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const waitForTrackingUpdate = function (elementToCheck) {
|
||||
if (elementToCheck.css('display') !== 'none') {
|
||||
setTimeout(() => waitForTrackingUpdate(elementToCheck), 100);
|
||||
} else {
|
||||
jQuery(orderTrackingContainerSelector).load(loadLocation, "", function(){
|
||||
toggleLoaderVisibility();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (gzdSyncEnabled && typeof(gzdSaveButton) != 'undefined' && gzdSaveButton != null) {
|
||||
gzdSaveButton.addEventListener('click', function (event) {
|
||||
toggleLoaderVisibility();
|
||||
waitForTrackingUpdate(jQuery('#order-shipments-save'));
|
||||
})
|
||||
}
|
||||
|
||||
if (wcShipmentSyncEnabled && typeof(wcShipmentSaveButton) != 'undefined' && wcShipmentSaveButton != null) {
|
||||
wcShipmentSaveButton.addEventListener('click', function (event) {
|
||||
toggleLoaderVisibility();
|
||||
waitForTrackingUpdate(jQuery('#shipment-tracking-form'));
|
||||
})
|
||||
}
|
||||
},
|
||||
);
|
Loading…
Add table
Add a link
Reference in a new issue