Plugin Directory

Changeset 3305500


Ignore:
Timestamp:
06/03/2025 07:08:41 AM (10 months ago)
Author:
bobgroup
Message:

Deploy version 3.0.88

Location:
uafrica-shipping/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • uafrica-shipping/trunk/app/templates/shipping-template.php

    r3267713 r3305500  
    120120                                </div>
    121121                            </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}}
    122130                        </div>
    123131                    </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  
    66Tested up to: 6.7
    77Requires PHP: 7.0.0
    8 Stable tag: 3.0.81
     8Stable tag: 3.0.88
    99License: GPLv2 or later
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    7878== Changelog ==
    7979
     80= 3.0.88 =
     81* Display the estimated delivery date range on the tracking page
     82
    8083= 3.0.81 =
    8184* Fix handling rates in the shipping package
  • uafrica-shipping/trunk/uafrica-shipping.php

    r3283903 r3305500  
    1313 * Requires at least: 5.0
    1414 * Requires PHP:      7.0
    15  * Version:           3.0.81
     15 * Version:           3.0.88
    1616 * License:           GPLv2 or later
    1717 *
     
    2525 */
    2626
    27 define( 'UAFRICA_SHIPPING_VERSION', '3.0.81' );
     27define( 'UAFRICA_SHIPPING_VERSION', '3.0.88' );
    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.