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]