0

PrestaShop 1.7.7.8 に問題があり、supercheckout モジュールを使用しています。

classes/Validate.php ファイルをオーバーライド フォルダーにオーバーライドし、いくつかの正規表現を編集すると、「Technical Error-Request Failed」というエラーが表示されます。(写真1 )。抑圧を元に戻すと、問題はなくなります。もう 1 つのポイントは、このエラーはゲスト ユーザーのみに表示されることです。ログインして supercheckout ページに移動すると、エラーは表示されず、正常に動作します。だから私は正規表現を編集したい。

私は解決策を見つけようとしました。エラーがそのファイル内で定義されていることがわかりました:\modules\supercheckout\views\templates\front\supercheckout.tpl

コメント欄で頂きました。(写真2 )。そして、3番目の写真(写真3)でエラーが発生しました。

id_address_delivery変数が空ですこの変数に値 1 を設定すると、最初は問題なく動作しますが、再度製品を購入するページに移動すると、4 番目の画像 (画像 4 ) のエラーが発生します。最後に、それが私の正規表現です (**画像 5 **

したがって、問題は Ajax リクエスト ( modules/supercheckout/views/js/front/supercheckout.js ) にありますが、見つかりません。

var shipping_error_found_on_load = false;
    function loadCarriers() {
        var requestParam = getCounrtryAndIdDelivery();
        var id_country = requestParam[0];
        var id_state = 0;
        if (checkStateVisibility(id_country, 'select[name="shipping_address[id_state]"]')) {
            id_state = $('select[name="shipping_address[id_state]"]').val();
        }
        var postcode = $('input[name="shipping_address[postcode]"]').val();
        var id_address_delivery = requestParam[1];
        var vat_code = '';
        if ($('input[name="shipping_address[vat_number]"]').val() != 'undefined' && 
    $('input[name="shipping_address[vat_number]"]').val() != '' && 
    $('input[name="shipping_address[vat_number]"]').val() != null) {
            vat_code = $('input[name="shipping_address[vat_number]"]').val();
        }
        shipping_error_found_on_load = false;
        $.ajax({
            type: 'POST',
            headers: {
                "cache-control": "no-cache"
            },
            url: getURLwithTime($('#module_url').val()),
            async: true,
            cache: false,
            dataType: "json",
            data: 'ajax=true' + '&id_country=' + id_country + '&id_state=' + id_state + '&postcode=' + postcode + '&vat_number=' + vat_code + '&id_address_delivery=' + id_address_delivery + '&method=loadCarriers&token=' + prestashop.static_token,
            beforeSend: function() {
                alert(8541);
                $('.kb_velsof_sc_overlay').show();$('.pay-loader').show();
                $('#shippingMethodLoader').show();
                $('#shipping_method_update_warning .permanent-warning').remove();
                alert(8888);
            },
            complete: function() {
                alert(77777);
                $('.kb_velsof_sc_overlay').hide();$('.pay-loader').hide();
                $('#shippingMethodLoader').hide();
            },
            success: function(jsonData) {
                if (jsonData['hasError']) {
                    $('#shipping-method').html('');
                    $('#shipping_method_update_warning').html('<div class="permanent-warning">' + jsonData['shipping_error'][0] + '</div>');
                } else {
                    $('#shipping-method').html(jsonData['html']);
                }
                $('.delivery_option_radio:checked').closest('li').addClass('alert-info');
                set_column_inside_height();
                //loadCart();
                /* Start Code Added By Priyanshu on 11-Feb-2021 for the packetery ( Zasilkovna ) compatibility */
                if (typeof onShippingLoadedCallback !== 'undefined') {
                    onShippingLoadedCallback();
                }
                /* End Code Added By Priyanshu on 11-Feb-2021 for the packetery ( Zasilkovna ) compatibility */
                updateCarrierOnDeliveryChange()
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                var errors = sprintf(ajaxRequestFailedMsg, XMLHttpRequest, textStatus);
                $('#shipping_method_update_warning').html('<div class="permanent-warning">' + errors + '</div>');
                $('.kb_velsof_sc_overlay').hide();$('.pay-loader').hide();
            }
        });
    }
    function getCounrtryAndIdDelivery() {
        var id_country = 0;
        var id_address_delivery = '';
        if ($('input[name="shipping_address_value"]').length) {
            if ($('input[name="shipping_address_value"]:checked').val() == 1) {
                id_country = $('select[name="shipping_address[id_country]"] option:selected').val();
            } else if ($('input[name="shipping_address_value"]:checked').val() == 0) {
                id_address_delivery = $('select[name="shipping_address_id"] option:selected').val();
            }
        } else {
            id_country = $('select[name="shipping_address[id_country]"] option:selected').val();
        }

        var arr = [];
        arr.push(id_country);
        arr.push(id_address_delivery);
        return arr;
    }

[the page contains the error - picture 1][1]
[comment line the error variable - picture 2][2]
[the second error - picture 3][3]
[the third error - picture 4][4]
[my regex expressions - picture 5][5]
4

0 に答える 0