Plugin Directory

Changeset 3059826


Ignore:
Timestamp:
03/27/2024 01:27:39 PM (2 years ago)
Author:
hfdepost
Message:

Performance Improvement

Location:
hfd-epost-integration/trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • hfd-epost-integration/trunk/class/Admin.php

    r3011172 r3059826  
    7575                    'headers' => array(
    7676                        'Authorization' => 'Bearer '.$authToken
    77                     )
     77                    ),
     78                    'sslverify' => false
    7879                );
    7980                $response_run = wp_remote_get( $cancel_shipment_url, $args );
  • hfd-epost-integration/trunk/class/App.php

    r3026812 r3059826  
    211211                    'headers' => array(
    212212                        'Authorization' => 'Bearer '.$authToken
    213                     )
     213                    ),
     214                    'sslverify' => false
    214215                );
    215216                $printLabelUrl = str_replace( "{RAND}", $epost_ship_number, $printLabelUrl );
     
    457458    public function renderPickupMap()
    458459    {
    459         $template = Container::create('Hfd\Woocommerce\Template');
    460         echo $template->fetchView('cart/footer.php');
     460        if( function_exists( 'is_cart' ) && function_exists( 'is_checkout' ) && ( is_cart() || is_checkout() ) ){
     461            $template = Container::create('Hfd\Woocommerce\Template');
     462            echo $template->fetchView('cart/footer.php');
     463        }
    461464    }
    462465
  • hfd-epost-integration/trunk/class/Helper/Hfd/Api.php

    r2811095 r3059826  
    116116            $args = array(
    117117                'timeout' => 15,
    118                 'user-agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'
     118                'user-agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13',
     119                'sslverify' => false
    119120            );
    120121            // add bearer token into request
  • hfd-epost-integration/trunk/class/Helper/Spot.php

    r2766592 r3059826  
    2525        $args = array(
    2626            'timeout' => 15,
     27            'sslverify' => false
    2728        );
    2829       
     
    6263        $args = array(
    6364            'timeout' => 15,
     65            'sslverify' => false
    6466        );
    6567        $response = wp_remote_get( $this->getServiceUrl( $city ), $args );
  • hfd-epost-integration/trunk/css/style.css

    r2766592 r3059826  
    235235}
    236236
     237.gm-style .gm-style-iw{
     238    padding: 0 !important;
     239}
     240.gm-style .gm-style-iw-d{
     241    overflow: auto !important;
     242}
     243
    237244@media only screen and (max-width: 767px){
    238245    #legend {
  • hfd-epost-integration/trunk/hfd-woocommerce-epost.php

    r3026812 r3059826  
    22/*
    33Plugin Name: HFD ePost Integration
     4Requires Plugins: woocommerce
    45Plugin URI:
    56Description: Add shipping method of ePost, allowing the user on the checkout, to select the pickup location point from a google map popup. Also allows to synch the order to HFD API after the order is created.
    6 Version: 1.8
     7Version: 1.9
    78Author: HFD
    89Author URI: https://www.hfd.co.il
     
    1112*/
    1213
    13 //if (!in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option( 'active_plugins')))) {
    14 //    return;
    15 //}
     14//return if woocommerce not installed
     15if( !in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ){
     16    return;
     17}
    1618
    1719define( 'HFD_EPOST_PATH', dirname( __FILE__ ) );
  • hfd-epost-integration/trunk/js/map.js

    r2889280 r3059826  
    44    infoWindows: {},
    55    markers: {},
     6    current_spot: null,
    67
    78    init: function () {
    89        var _this = this;
    9         $j(document).on('click', '.close-infoBox', function (event) {
    10             _this.closeInfobox();
    11             event.preventDefault();
    12         }.bind(this));
    13 
    1410        $j( "body" ).on( 'click', '.selectspot', function (e) {
    1511            e.preventDefault();
    1612            var spotId = $j(this).data('shopid');
    17             _this.selectSpot(_this.markers[spotId].json);
     13            _this.selectSpot();
    1814        });
    1915
    2016        var searchInput = $j('#pac-input');
    2117        $j(window).trigger('resize');
    22 
     18         
    2319        this.drawMap();
    2420    },
    2521
    26     drawMap: function(){
     22    drawMap: async function(){
     23        const { AdvancedMarkerElement } = await google.maps.importLibrary("marker");
     24        //const { AutocompleteService } = await google.maps.importLibrary("places");
     25       
    2726        this.map = new google.maps.Map(document.getElementById('israelpost-map'), {
    2827            center: {lat: 32.063940, lng: 34.837801},
    29             zoom: 12
     28            zoom: 12,
     29            mapId: 'hfd19integration'
    3030        });
    3131        var map = this.map;
     
    3636        this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(searchContainer);
    3737
    38         var autocomplete = new google.maps.places.Autocomplete(input);
    39         autocomplete.bindTo('bounds', this.map);
     38        //const autocomplete = new AutocompleteService();
     39        //autocomplete.bindTo('bounds', this.map);
    4040
    41         var marker = new google.maps.Marker({
     41        const amarker = new AdvancedMarkerElement({
    4242            map: map,
    43             anchorPoint: new google.maps.Point(0, -29)
    4443        });
    4544       
    46         autocomplete.addListener('place_changed', function () {
    47             marker.setVisible(false);
     45        /* autocomplete.addListener('place_changed', function () {
     46            amarker.setVisible(false);
    4847            var place = autocomplete.getPlace();
    4948
     
    5958                map.setZoom(17);  // Why 17? Because it looks good.
    6059            }
    61             marker.setIcon(({
     60            amarker.setIcon(({
    6261                url: place.icon,
    6362                size: new google.maps.Size(71, 71),
     
    6665                scaledSize: new google.maps.Size(35, 35)
    6766            }));
    68             marker.setPosition(place.geometry.location);
    69             marker.setVisible(true);
    70         });
     67            amarker.setPosition(place.geometry.location);
     68            amarker.setVisible(true);
     69        }); */
    7170    },
    72 
    73     pinMarkers: function (spots) {
     71    buildContent: function( spot ){
     72        var icon = IsraelPostCommon.getConfig('redDotPath');
     73        if (spot.type == 'חנות') {
     74            var icon = IsraelPostCommon.getConfig('grnDotPath');
     75        }
     76                   
     77        const content = document.createElement("div");
     78        content.classList.add("infoBox");
     79        content.innerHTML = '<div class="details">' +
     80                '<h3>' + spot.name + '</h3>' +
     81                '<p>' + spot.street + ' ' + spot.house +
     82                '<br />' + spot.city +
     83                '<br />' + spot.remarks +
     84                '</p><ul class="hours">' + this.generateHours(spot) + '</ul>' +
     85                '<a href="#" data-shopid="' + spot.n_code + '" class="selectspot">' + Translator.translate('Select') + ' ' + spot.type + ' &raquo;</a></div>';
     86               
     87        return content;
     88    },
     89   
     90    pinMarkers: async function (spots) {
     91        const { AdvancedMarkerElement } = await google.maps.importLibrary("marker");
     92        const { Map, InfoWindow } = await google.maps.importLibrary("maps");
     93       
    7494        spots = spots || {};
    7595        var _this = this,
    7696            infoboxOptions,
    7797            spot;
    78 
     98       
     99        var info_window = null;
     100       
    79101        //loop trough shops
    80102        for (i in spots) {
    81103            spot = spots[i];
    82             infoboxOptions = {
    83                 content: '<div><a href="#" class="close close-infoBox"></a>' +
    84                 '<h3>' + spot.name + '</h3>' +
    85                 '<p>' + spot.street + ' ' + spot.house +
    86                 '<br />' + spot.city +
    87                 '<br />' + spot.remarks +
    88                 '</p><ul class="hours">' + _this.generateHours(spot) + '</ul>' +
    89                 '<a href="#" data-shopid="' + spot.n_code + '" class="selectspot">' + Translator.translate('Select') + ' ' + spot.type + ' &raquo;</a></div>',
    90                 disableAutoPan: false,
    91                 maxWidth: 0,
    92                 pixelOffset: new google.maps.Size(0, -10),
    93                 zIndex: null,
    94                 boxStyle: {
    95                     width: "235px"
    96                 },
    97                 closeBoxURL: "",
    98                 infoBoxClearance: new google.maps.Size(20, 20),
    99                 isHidden: false,
    100                 pane: "floatPane",
    101                 enableEventPropagation: true
    102             };
    103             this.infoWindows[spot.n_code] = new InfoBox(infoboxOptions);
    104 
     104           
    105105            var icon = IsraelPostCommon.getConfig('redDotPath');
    106106            if (spot.type == 'חנות') {
    107107                var icon = IsraelPostCommon.getConfig('grnDotPath');
    108108            }
     109           
     110            const hfdImg = document.createElement("img");
     111            hfdImg.src = icon;
     112           
    109113            //google maps marker
    110             this.markers[spot.n_code] = new google.maps.Marker({
     114            const marker = new AdvancedMarkerElement({
    111115                position: new google.maps.LatLng(spot.latitude, spot.longitude),
    112116                map: this.map,
    113                 icon: icon,
    114                 shape: null,
    115                 zIndex: 1,
    116                 json: spot
     117                content: hfdImg,
     118                zIndex: null,
    117119            });
    118             google.maps.event.addListener(this.markers[spot.n_code], 'click', (function (marker) {
    119                 return function () {
    120                     _this.clickSpot(marker.json.n_code);
    121                 }.bind(this)
    122             }.bind(this))(this.markers[spot.n_code]));
     120                       
     121            marker.spot = spot;
     122            marker.addListener("click", ({domEvent, latLng}) => {
     123                if( info_window ){
     124                    info_window.close();
     125                }
     126                // Create an info window to share between markers.
     127                info_window = new InfoWindow({
     128                    content: this.buildContent( marker.spot ),
     129                });
     130                this.current_spot = marker.spot;
     131                //infoWindow.setContent( marker.content );
     132                info_window.open({
     133                    anchor: marker,
     134                });
     135            }); 
    123136        }
    124137
     
    130143    clickSpot: function (spotid) {
    131144        //move map to center of this marker
    132         this.map.panTo(this.markers[spotid].getPosition());
     145       // this.map.panTo(this.markers[spotid].getPosition());
    133146        //open the infobubble
    134147        if (this.activeInfo != null) {
     
    145158    },
    146159
    147     selectSpot: function (spot) {
     160    selectSpot: function () {
     161        var spot = this.current_spot;
    148162        var html = this.spotTemplate = '<strong>' + Translator.translate('Branch name') + ':</strong> '+ spot.name +' <br/>'
    149163            + '<strong>' + Translator.translate('Branch address') + ':</strong> '+ spot.street +' '+ spot.house +', '+ spot.city +' <br/>'
  • hfd-epost-integration/trunk/readme.txt

    r3026812 r3059826  
    44Donate link:
    55Requires at least: 4.0
    6 Tested up to: 6.4
    7 Stable tag: 1.8
     6Tested up to: 6.5
     7Stable tag: 1.9
    88Requires PHP: 5.4
    99License: GPLv2 or later
  • hfd-epost-integration/trunk/templates/cart/footer.php

    r3021501 r3059826  
    1212$setting = \Hfd\Woocommerce\Container::get( 'Hfd\Woocommerce\Setting' );
    1313$layout = $setting->get( 'betanet_epost_layout' );
    14 ?>
    15 <?php if( $layout == 'map' ): ?>
     14
     15if( $layout == 'map' ): ?>
    1616    <div id="israelpost-modal" style="display: none">
    1717        <div id="israelpost-autocompelete">
     
    3030        <div id="israelpost-map" style="width: 100%; max-width: 750px; height: 450px;"></div>
    3131    </div>
     32    <script>
     33        var apiKey = '<?php echo $setting->getGoogleApiKey(); ?>';
     34        (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src='https://maps.googleapis.com/maps/api/js?'+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
     35            key: apiKey,
     36            v: "quarterly",
     37        });
     38    </script>
    3239    <?php
    33     wp_enqueue_script( 'hfd-gscript', '//maps.googleapis.com/maps/api/js?v=3.37&libraries=places&language=he&key='.$setting->getGoogleApiKey() );
    34     wp_enqueue_script( 'hfd-gmaps', $this->getSkinUrl( 'js/infobox.js' ) );
    3540    wp_enqueue_script( 'hfd-common-js', $this->getSkinUrl( 'js/common.js' ) );
    36     wp_enqueue_script( 'hfd-gmap-js', $this->getSkinUrl( 'js/map.js' ) );
     41    wp_enqueue_script( 'hfd-gmap-js', $this->getSkinUrl( 'js/map.js' ), array(), time() );
    3742    wp_enqueue_script( 'hfd-pickup-post', $this->getSkinUrl( 'js/pickup-post.js' ) );
    3843    wp_enqueue_script( 'hfd-checkout-js', $this->getSkinUrl( 'js/checkout.js' ) );
     
    6671                var mainBlock = jQuery('#israelpost-additional');
    6772                if( mainBlock.parent().find( 'input.shipping_method' ).is(':checked') ){
    68                     /* if( !hfdObj ){
    69                         IsraelPostCommon.init({
    70                             saveSpotInfoUrl: '<?php echo esc_html( admin_url( 'admin-ajax.php' ) ); ?>',
    71                             getSpotsUrl: '<?php echo esc_html( admin_url( 'admin-ajax.php?action=get_spots' ) ); ?>',
    72                             redDotPath: '<?php echo esc_html( $this->getSkinUrl( 'images/red-dot.png' ) ); ?>',
    73                             grnDotPath: '<?php echo esc_html( $this->getSkinUrl( '/images/grn-dot.png' ) ); ?>'
    74                         });
    75                         IsraelPost.showPickerPopup(e);
    76                         //hfdObj = true;
    77                     } */
    78                     //console.log( hfdObj );
    7973                    mainBlock.show();
    8074                }else{
     
    9185                var spotId = $j(this).data('shopid');
    9286                //console.log( IsraelPostMap.markers );
    93                 spot = IsraelPostMap.markers[spotId].json;
     87                spot = IsraelPostMap.current_spot;
    9488               
    9589                var html = this.spotTemplate = '<strong>' + Translator.translate('Branch name') + ':</strong> '+ spot.name +' <br/>'
Note: See TracChangeset for help on using the changeset viewer.