Woocommerce рассчитывает доставку с использованием API матрицы расстояний, не работающего в некоторых местах - PullRequest
0 голосов
/ 29 апреля 2020

Я использую API для расчета доставки в зависимости от выбранного расстояния. У меня есть 2 пункта отправления Найроби и Момбаса. Доставка должна выбрать местоположение отправки, которое находится рядом с местоположением, выбранным с помощью Google Location API. Я использую матрицу расстояний для достижения этой цели. Ниже приведен код для достижения этого:

    /* distance calculation between customer pickup point and Kericho Gold dispatch location */
            var dispatchNairobi = 'Nairobi, Kenya';
            var dispatchMombasa = 'Mombasa, Kenya';

            // var source = 'Nairobi, Kenya';
            var destination = customerLocation;

            var service = new google.maps.DistanceMatrixService();
            service.getDistanceMatrix({
                origins: [dispatchNairobi],
                destinations: [destination],
                travelMode: google.maps.TravelMode.DRIVING,
                unitSystem: google.maps.UnitSystem.METRIC,
                avoidHighways: false,
                avoidTolls: false
            }, function (response, status) {
                if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") {
                    var distanceNairobi = response.rows[0].elements[0].distance.value;
                    var durationNairobi = response.rows[0].elements[0].duration.text;

                    $("#nairobiDistance").val(distanceNairobi).change();

                } else {
                    alert("An error occured.");
                }
            });

            service.getDistanceMatrix({
                origins: [dispatchMombasa],
                destinations: [destination],
                travelMode: google.maps.TravelMode.DRIVING,
                unitSystem: google.maps.UnitSystem.METRIC,
                avoidHighways: false,
                avoidTolls: false
            }, function (response, status) {
                if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") {
                    var distanceMombasa = response.rows[0].elements[0].distance.value;
                    var durationMombasa = response.rows[0].elements[0].duration.text;

                    $("#mombasaDistance").val(distanceMombasa).change();

                } else {
                    alert("An error occured.");
                }
            });             

            /* end */
            jQuery('input#mombasaDistance').on( 'change', function(){
                if( $("#mombasaDistance").val() < $("#nairobiDistance").val() )
                {
                    var dispatchLocation = dispatchMombasa;
                    var dispatchLat = '-4.0350145';
                    var dispatchLong = '39.5962225';    

                    console.log(dispatchLocation);
                }
                else if($("#nairobiDistance").val() < $("#mombasaDistance").val())
                {
                    var dispatchLocation = dispatchNairobi;
                    var dispatchLat = '-1.3028618';
                    var dispatchLong = '36.7073099';

                    console.log(dispatchLocation);
                }

Стоимость доставки рассчитывается для мест, которые возвращают Найроби в качестве исходного адреса. Тем не менее, некоторые местоположения находятся в Найроби, но Момбаса возвращается в качестве Исходного адреса, поэтому я получаю сообщение об ошибке, и стоимость доставки не рассчитывается. Кто-нибудь? * * 1004

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...