Plugin Directory

Changeset 3464779


Ignore:
Timestamp:
02/19/2026 06:35:55 AM (6 weeks ago)
Author:
bobgroup
Message:

Deploy version 3.0.96

Location:
uafrica-shipping/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uafrica-shipping/trunk/assets/build/uafrica-shipping.js

    r3464421 r3464779  
    1 window.uAfricaShipping=window.uAfricaShipping||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}`,i=getComputedStyle(document.documentElement);let n=i.getPropertyValue(t)?.trim();if(!n){const t=`--${e}`;n=i.getPropertyValue(t)?.trim()}return n||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 i=e.time?new Date(e.time).getTime():0;return(t.time?new Date(t.time).getTime():0)-i||Number(e.step_number)-Number(t.step_number)})||[];return t.map((e,i)=>{const n=e.time?moment.utc(e.time).local():null;return{status:e.label,image:e.image,imageStyle:e.image_style,date:n?n.format("D MMM YYYY"):null,time:n?n.format("HH:mm"):null,shouldAddVerticalLine:i<t.length-1,hasDateAndTime:!!n}})}formatDeliveryRange(e,t,i){const n=e&&""!==e.trim(),r=t&&""!==t.trim(),o=i&&""!==i.trim();if(n&&r){const i=moment(e),n=moment(t),r=i.format("ddd, D MMM YYYY"),o=n.format("ddd, D MMM YYYY");return i.isSame(n,"day")?o:`${r} - ${o}`}return n||r||!o?"":moment(i).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,i)=>{const n=e.time?moment.utc(e.time).local():null;return{status:e.label,image:e.image,imageStyle:e.image_style,date:n?n.format("D MMM YYYY"):null,time:n?n.format("HH:mm"):null,shouldAddVerticalLine:i<t.length-1,hasDateAndTime:!!n}})}displayOrderData(){const e=document.getElementById("mc-tracking-template");if(!e)return;const t=e.innerHTML;Mustache.parse(t);const i=this.getThemeColorPreference(),n=this.shippingDetails.map((e,t)=>{const n="dark"===i?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),o=""!==r;return{...e,bobgo_logo:n,deliveryRange:r,showEstimatedDeliveryRange:o}}),r={shipments:n,show_branding:n.length>0&&n[0].show_branding,bobgo_logo:n.length>0?n[0].bobgo_logo:null},o=Mustache.render(t,r);this.trackingContainer.innerHTML=o,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"),i=`https://maps.google.com/?q=${e},${t}`;e&&t&&window.open(i,"_blank")})})}displayError(e){const t=document.getElementById("mc-error-template");if(!t)return;const i=t.innerHTML,n=Mustache.render(i,{error:e});this.errorContainer.innerHTML=n,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 i=t.innerHTML,n=Mustache.render(i,{error:e});this.errorContainer.innerHTML=n,this.errorContainer.classList.remove(this.hiddenClassName),this.errorContainer.classList.add("mc-visible")}},function e(t=0){const i=document.querySelector("#tracking-container"),n=void 0!==window.Mustache,r=void 0!==window.uAfricaShipping;if(i&&n&&r)try{new window.uAfricaShipping(i)}catch(e){console.error("Failed to initialize Bob Go:",e)}else t<100?setTimeout(()=>e(t+1),100):console.error("Bob Go container, Mustache, or uAfricaShipping never loaded.")}();
     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

    r3464421 r3464779  
    66Tested up to: 6.7
    77Requires PHP: 7.0.0
    8 Stable tag: 3.0.95
     8Stable tag: 3.0.96
    99License: GPLv2 or later
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    7878== Changelog ==
    7979
     80= 3.0.96 =
     81* Remove temporary Mustache testing fixes.
     82
    8083= 3.0.95 =
    8184* Update the listing tags
  • uafrica-shipping/trunk/uafrica-shipping.php

    r3464421 r3464779  
    1313 * Requires at least: 5.0
    1414 * Requires PHP:      7.0
    15  * Version:           3.0.95
     15 * Version:           3.0.96
    1616 * License:           GPLv2 or later
    1717 *
     
    2525 */
    2626
    27 define( 'UAFRICA_SHIPPING_VERSION', '3.0.95' );
     27define( 'UAFRICA_SHIPPING_VERSION', '3.0.96' );
    2828// Endpoints for tracking orders.
    2929define( '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.