Changeset 3305500
- Timestamp:
- 06/03/2025 07:08:41 AM (10 months ago)
- Location:
- uafrica-shipping/trunk
- Files:
-
- 4 edited
-
app/templates/shipping-template.php (modified) (1 diff)
-
assets/build/uafrica-shipping.js (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
-
uafrica-shipping.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uafrica-shipping/trunk/app/templates/shipping-template.php
r3267713 r3305500 120 120 </div> 121 121 </div> 122 {{#showEstimatedDeliveryRange}} 123 <div class="shipping-details-row"> 124 <div class="label-value-container"> 125 <div class="bobgo-label">Estimated delivery</div> 126 <div class="bobgo-value">{{deliveryRange}}</div> 127 </div> 128 </div> 129 {{/showEstimatedDeliveryRange}} 122 130 </div> 123 131 </div> -
uafrica-shipping/trunk/assets/build/uafrica-shipping.js
r3267713 r3305500 1 (()=>{const e=class{constructor(e){this.containerEle=e,this.formEle=this.containerEle.querySelector("#mc-search-container"),this.submitBttn=this.formEle?this.formEle.querySelector("#mc-track-button"):null,this.validationEle=this.containerEle.querySelector(".validation"),this.trackingContainer=this.containerEle.querySelector("#mc-tracking-container"),this.errorContainer=this.containerEle.querySelector("#mc-error-container"),this.loadingContainer=this.containerEle.querySelector("#mc-tracking-loader"),this.trackNumberInput=this.formEle.querySelector("input[name=order-number]"),this.abortController=new AbortController,this.hiddenClassName="mc-hidden",this.mustacheTagsOverride=["{{","}}"],this.orderNR=this.getOrderNumberQueryParam(),this.orderNR?this.fetchOrderData():(this.showElements(),this.handleFormSubmit())}handleFormSubmit(){this.formEle=this.containerEle.querySelector("#tracking-form"),this.formEle&&this.formEle.addEventListener("submit",(e=>{e.preventDefault();const t=this.containerEle.querySelector("input[name=order-number]");if(t){if(this.orderNR=t.value,history.pushState){const e=`${window.location.origin}${window.location.pathname}?order-number=${this.orderNR}`;window.history.pushState({path:e},"",e)}this.fetchOrderData()}}))}getOrderNumberQueryParam(){return new URLSearchParams(window.location.search).get("order-number")}hideElements(){const e=this.containerEle.querySelector("#mc-search-container");e&&e.classList.add(this.hiddenClassName),this.validationEle&&this.validationEle.classList.add(this.hiddenClassName);const t=document.getElementById("mc-track-button");t&&t.classList.add(this.hiddenClassName)}showElements(){const e=this.containerEle.querySelector("#mc-search-container");e&&e.classList.remove(this.hiddenClassName),this.validationEle&&this.validationEle.classList.remove(this.hiddenClassName);const t=document.getElementById("mc-track-button");t&&t.classList.remove(this.hiddenClassName)}fetchOrderData(){this.fetchRunning?(this.abortController.abort(),this.abortController=new AbortController):this.fetchRunning=!0,this.submitBttn.disabled=!0,this.showLoading();const e=uafrica_shipping_l10n.v3_api_url.replace("NUMBER",this.orderNR).replace("DOMAIN",uafrica_shipping_l10n.domain);fetch(e,{signal:this.abortController.signal}).then((e=>e.json())).then((e=>{if(e.length>0)this.shippingDetails=e.map((e=>this.prepareForRender(e))),this.hideElements(),this.displayOrderData();else{let t={};try{t=JSON.parse(e.message)}catch{t={}}t.success,this.showError(`We were unable to retrieve tracking information for '${this.orderNR}'. Please try again later.`),this.showElements()}})).catch((e=>{20!==e.code&&this.displayError(`We were unable to retrieve tracking information for '${this.orderNR}'. Please try again later.`),this.showElements()})).finally((()=>{this.fetchRunning=!1,this.submitBttn.disabled=!1,this.hideLoading()}))}getThemeColorPreference(){let e,t;return"undefined"!=typeof themeSettings&&themeSettings.contentBackgroundColor&&(e=themeSettings.contentBackgroundColor.desktop?.color,e&&e.startsWith("palette")&&(e=this.getPaletteColor(e))),e||(e=this.getCSSVariableBackgroundColor(".content-wrap, .entry, .content-bg, .entry-content-wrap")||getComputedStyle(document.body).backgroundColor),e&&"rgba(0, 0, 0, 0)"!==e?(t=e.startsWith("#")?this.hexToRgb(e):e.match(/\d+/g),t&&.299*t[0]+.587*t[1]+.114*t[2]<128?"dark":"light"):"light"}hexToRgb(e){return e=e.replace("#",""),[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}getPaletteColor(e){const t=`--global-${e}`,n=getComputedStyle(document.documentElement);let i=n.getPropertyValue(t)?.trim();if(!i){const t=`--${e}`;i=n.getPropertyValue(t)?.trim()}return i||null}getCSSVariableBackgroundColor(e){const t=document.querySelector(e);return t&&getComputedStyle(t).backgroundColor||null}prepareForRender(e){return e.groupedCheckpoints=e.grouped_checkpoints||[],e.hasTrackingEvents=e.groupedCheckpoints.length>0,e.isCancelled=!e.hasTrackingEvents&&"cancelled"===e.status,e.isPendingCollection=!e.hasTrackingEvents&&"pending-collection"===e.status,e.movementEvents=this.buildMovementEvents(e),e.trackingEvents=this.buildTrackingEvents(e),e.columns=e.movementEvents.length,e.cancelled="cancelled"===e.status,e.locationType=e.pickup_point_location_type,e.pickupPointHeader=e.pickup_point_header,e.hasPickupPointDetails=e.show_pickup_point_details,e.hasLocationDescription=e.delivery_location&&e.delivery_location.description.length>0,e.hasInstructions=e.show_pickup_point_details_instructions&&e.pickup_point_instructions&&e.pickup_point_instructions.length>0,e.pickupPointInstructions=e.pickup_point_instructions,e.hasLocationImage=e.delivery_location&&e.delivery_location.image_url&&e.delivery_location.image_url.length>0,e}buildTrackingEvents(e){const t=Object.entries(e.tracking_steps||{}).map((([e,t])=>({key:e,...t}))).sort(((e,t)=>{const n=e.time?new Date(e.time).getTime():0;return(t.time?new Date(t.time).getTime():0)-n||Number(e.step_number)-Number(t.step_number)}))||[];return t.map(((e,n)=>{const i=e.time?moment.utc(e.time).local():null;return{status:e.label,image:e.image,imageStyle:e.image_style,date:i?i.format("D MMM YYYY"):null,time:i?i.format("HH:mm"):null,shouldAddVerticalLine:n<t.length-1,hasDateAndTime:!!i}}))} buildMovementEvents(e){const t=Object.entries(e.tracking_steps||{}).map((([e,t])=>({key:e,...t}))).sort(((e,t)=>e.step_number-t.step_number))||[];return t.map(((e,n)=>{const i=e.time?moment.utc(e.time).local():null;return{status:e.label,image:e.image,imageStyle:e.image_style,date:i?i.format("D MMM YYYY"):null,time:i?i.format("HH:mm"):null,shouldAddVerticalLine:n<t.length-1,hasDateAndTime:!!i}}))}displayOrderData(){const e=document.getElementById("mc-tracking-template");if(!e)return;const t=e.innerHTML;Mustache.parse(t);const n=this.getThemeColorPreference(),i=this.shippingDetails.map(((e,t)=>{const i="dark"===n?e.bob_go_logo_white:e.bob_go_logo_black;return{...e,bobgo_logo:i}})),r={shipments:i,show_branding:i.length>0&&i[0].show_branding,bobgo_logo:i.length>0?i[0].bobgo_logo:null},s=Mustache.render(t,r);this.trackingContainer.innerHTML=s,this.attachClickEvents(),this.showTracking()}attachClickEvents(){document.querySelectorAll(".directions-link").forEach((e=>{e.addEventListener("click",(function(){const e=this.getAttribute("direction-lat"),t=this.getAttribute("direction-lng"),n=`https://maps.google.com/?q=${e},${t}`;e&&t&&window.open(n,"_blank")}))}))}displayError(e){const t=document.getElementById("mc-error-template");if(!t)return;const n=t.innerHTML,i=Mustache.render(n,{error:e});this.errorContainer.innerHTML=i,this.showError()}showLoading(){this.loadingContainer.classList.remove(this.hiddenClassName),this.trackingContainer.classList.add(this.hiddenClassName),this.errorContainer.classList.add(this.hiddenClassName)}hideLoading(){this.loadingContainer.classList.add(this.hiddenClassName)}showTracking(){this.trackingContainer.classList.remove(this.hiddenClassName),this.errorContainer.classList.add(this.hiddenClassName)}showError(e){const t=document.getElementById("mc-error-template");if(!t)return;const n=t.innerHTML,i=Mustache.render(n,{error:e});this.errorContainer.innerHTML=i,this.errorContainer.classList.remove(this.hiddenClassName),this.errorContainer.classList.add("mc-visible")}};document.addEventListener("DOMContentLoaded",(function(){const t=document.querySelector("#tracking-container");t&&new e(t)}))})();1 (()=>{const e=class{constructor(e){this.containerEle=e,this.formEle=this.containerEle.querySelector("#mc-search-container"),this.submitBttn=this.formEle?this.formEle.querySelector("#mc-track-button"):null,this.validationEle=this.containerEle.querySelector(".validation"),this.trackingContainer=this.containerEle.querySelector("#mc-tracking-container"),this.errorContainer=this.containerEle.querySelector("#mc-error-container"),this.loadingContainer=this.containerEle.querySelector("#mc-tracking-loader"),this.trackNumberInput=this.formEle.querySelector("input[name=order-number]"),this.abortController=new AbortController,this.hiddenClassName="mc-hidden",this.mustacheTagsOverride=["{{","}}"],this.orderNR=this.getOrderNumberQueryParam(),this.orderNR?this.fetchOrderData():(this.showElements(),this.handleFormSubmit())}handleFormSubmit(){this.formEle=this.containerEle.querySelector("#tracking-form"),this.formEle&&this.formEle.addEventListener("submit",(e=>{e.preventDefault();const t=this.containerEle.querySelector("input[name=order-number]");if(t){if(this.orderNR=t.value,history.pushState){const e=`${window.location.origin}${window.location.pathname}?order-number=${this.orderNR}`;window.history.pushState({path:e},"",e)}this.fetchOrderData()}}))}getOrderNumberQueryParam(){return new URLSearchParams(window.location.search).get("order-number")}hideElements(){const e=this.containerEle.querySelector("#mc-search-container");e&&e.classList.add(this.hiddenClassName),this.validationEle&&this.validationEle.classList.add(this.hiddenClassName);const t=document.getElementById("mc-track-button");t&&t.classList.add(this.hiddenClassName)}showElements(){const e=this.containerEle.querySelector("#mc-search-container");e&&e.classList.remove(this.hiddenClassName),this.validationEle&&this.validationEle.classList.remove(this.hiddenClassName);const t=document.getElementById("mc-track-button");t&&t.classList.remove(this.hiddenClassName)}fetchOrderData(){this.fetchRunning?(this.abortController.abort(),this.abortController=new AbortController):this.fetchRunning=!0,this.submitBttn.disabled=!0,this.showLoading();const e=uafrica_shipping_l10n.v3_api_url.replace("NUMBER",this.orderNR).replace("DOMAIN",uafrica_shipping_l10n.domain);fetch(e,{signal:this.abortController.signal}).then((e=>e.json())).then((e=>{if(e.length>0)this.shippingDetails=e.map((e=>this.prepareForRender(e))),this.hideElements(),this.displayOrderData();else{let t={};try{t=JSON.parse(e.message)}catch{t={}}t.success,this.showError(`We were unable to retrieve tracking information for '${this.orderNR}'. Please try again later.`),this.showElements()}})).catch((e=>{20!==e.code&&this.displayError(`We were unable to retrieve tracking information for '${this.orderNR}'. Please try again later.`),this.showElements()})).finally((()=>{this.fetchRunning=!1,this.submitBttn.disabled=!1,this.hideLoading()}))}getThemeColorPreference(){let e,t;return"undefined"!=typeof themeSettings&&themeSettings.contentBackgroundColor&&(e=themeSettings.contentBackgroundColor.desktop?.color,e&&e.startsWith("palette")&&(e=this.getPaletteColor(e))),e||(e=this.getCSSVariableBackgroundColor(".content-wrap, .entry, .content-bg, .entry-content-wrap")||getComputedStyle(document.body).backgroundColor),e&&"rgba(0, 0, 0, 0)"!==e?(t=e.startsWith("#")?this.hexToRgb(e):e.match(/\d+/g),t&&.299*t[0]+.587*t[1]+.114*t[2]<128?"dark":"light"):"light"}hexToRgb(e){return e=e.replace("#",""),[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}getPaletteColor(e){const t=`--global-${e}`,n=getComputedStyle(document.documentElement);let i=n.getPropertyValue(t)?.trim();if(!i){const t=`--${e}`;i=n.getPropertyValue(t)?.trim()}return i||null}getCSSVariableBackgroundColor(e){const t=document.querySelector(e);return t&&getComputedStyle(t).backgroundColor||null}prepareForRender(e){return e.groupedCheckpoints=e.grouped_checkpoints||[],e.hasTrackingEvents=e.groupedCheckpoints.length>0,e.isCancelled=!e.hasTrackingEvents&&"cancelled"===e.status,e.isPendingCollection=!e.hasTrackingEvents&&"pending-collection"===e.status,e.movementEvents=this.buildMovementEvents(e),e.trackingEvents=this.buildTrackingEvents(e),e.columns=e.movementEvents.length,e.cancelled="cancelled"===e.status,e.locationType=e.pickup_point_location_type,e.pickupPointHeader=e.pickup_point_header,e.hasPickupPointDetails=e.show_pickup_point_details,e.hasLocationDescription=e.delivery_location&&e.delivery_location.description.length>0,e.hasInstructions=e.show_pickup_point_details_instructions&&e.pickup_point_instructions&&e.pickup_point_instructions.length>0,e.pickupPointInstructions=e.pickup_point_instructions,e.hasLocationImage=e.delivery_location&&e.delivery_location.image_url&&e.delivery_location.image_url.length>0,e}buildTrackingEvents(e){const t=Object.entries(e.tracking_steps||{}).map((([e,t])=>({key:e,...t}))).sort(((e,t)=>{const n=e.time?new Date(e.time).getTime():0;return(t.time?new Date(t.time).getTime():0)-n||Number(e.step_number)-Number(t.step_number)}))||[];return t.map(((e,n)=>{const i=e.time?moment.utc(e.time).local():null;return{status:e.label,image:e.image,imageStyle:e.image_style,date:i?i.format("D MMM YYYY"):null,time:i?i.format("HH:mm"):null,shouldAddVerticalLine:n<t.length-1,hasDateAndTime:!!i}}))}formatDeliveryRange(e,t,n){const i=e&&""!==e.trim(),r=t&&""!==t.trim(),s=n&&""!==n.trim();if(i&&r){const n=moment(e),i=moment(t),r=n.format("ddd, D MMM YYYY"),s=i.format("ddd, D MMM YYYY");return n.isSame(i,"day")?s:`${r} - ${s}`}return i||r||!s?"":moment(n).format("ddd, D MMM YYYY")}buildMovementEvents(e){const t=Object.entries(e.tracking_steps||{}).map((([e,t])=>({key:e,...t}))).sort(((e,t)=>e.step_number-t.step_number))||[];return t.map(((e,n)=>{const i=e.time?moment.utc(e.time).local():null;return{status:e.label,image:e.image,imageStyle:e.image_style,date:i?i.format("D MMM YYYY"):null,time:i?i.format("HH:mm"):null,shouldAddVerticalLine:n<t.length-1,hasDateAndTime:!!i}}))}displayOrderData(){const e=document.getElementById("mc-tracking-template");if(!e)return;const t=e.innerHTML;Mustache.parse(t);const n=this.getThemeColorPreference(),i=this.shippingDetails.map(((e,t)=>{const i="dark"===n?e.bob_go_logo_white:e.bob_go_logo_black,r=this.formatDeliveryRange(e.shipment_estimated_delivery_date_from,e.shipment_estimated_delivery_date_to,e.shipment_earliest_delivery_date),s=""!==r;return{...e,bobgo_logo:i,deliveryRange:r,showEstimatedDeliveryRange:s}})),r={shipments:i,show_branding:i.length>0&&i[0].show_branding,bobgo_logo:i.length>0?i[0].bobgo_logo:null},s=Mustache.render(t,r);this.trackingContainer.innerHTML=s,this.attachClickEvents(),this.showTracking()}attachClickEvents(){document.querySelectorAll(".directions-link").forEach((e=>{e.addEventListener("click",(function(){const e=this.getAttribute("direction-lat"),t=this.getAttribute("direction-lng"),n=`https://maps.google.com/?q=${e},${t}`;e&&t&&window.open(n,"_blank")}))}))}displayError(e){const t=document.getElementById("mc-error-template");if(!t)return;const n=t.innerHTML,i=Mustache.render(n,{error:e});this.errorContainer.innerHTML=i,this.showError()}showLoading(){this.loadingContainer.classList.remove(this.hiddenClassName),this.trackingContainer.classList.add(this.hiddenClassName),this.errorContainer.classList.add(this.hiddenClassName)}hideLoading(){this.loadingContainer.classList.add(this.hiddenClassName)}showTracking(){this.trackingContainer.classList.remove(this.hiddenClassName),this.errorContainer.classList.add(this.hiddenClassName)}showError(e){const t=document.getElementById("mc-error-template");if(!t)return;const n=t.innerHTML,i=Mustache.render(n,{error:e});this.errorContainer.innerHTML=i,this.errorContainer.classList.remove(this.hiddenClassName),this.errorContainer.classList.add("mc-visible")}};document.addEventListener("DOMContentLoaded",(function(){const t=document.querySelector("#tracking-container");t&&new e(t)}))})(); -
uafrica-shipping/trunk/readme.txt
r3283903 r3305500 6 6 Tested up to: 6.7 7 7 Requires PHP: 7.0.0 8 Stable tag: 3.0.8 18 Stable tag: 3.0.88 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 78 78 == Changelog == 79 79 80 = 3.0.88 = 81 * Display the estimated delivery date range on the tracking page 82 80 83 = 3.0.81 = 81 84 * Fix handling rates in the shipping package -
uafrica-shipping/trunk/uafrica-shipping.php
r3283903 r3305500 13 13 * Requires at least: 5.0 14 14 * Requires PHP: 7.0 15 * Version: 3.0.8 115 * Version: 3.0.88 16 16 * License: GPLv2 or later 17 17 * … … 25 25 */ 26 26 27 define( 'UAFRICA_SHIPPING_VERSION', '3.0.8 1' );27 define( 'UAFRICA_SHIPPING_VERSION', '3.0.88' ); 28 28 // Endpoints for tracking orders. 29 29 define( 'UAFRICA_SHIPPING_API_TRACKING_V3', 'https://api.bobgo.co.za/tracking?channel=DOMAIN&tracking_reference=NUMBER' );
Note: See TracChangeset
for help on using the changeset viewer.