繁体   English   中英

如何通过 Vertex 验证器在 Magento Checkout 页面上禁用送货地址验证

[英]How to disable shipping address validation on Magento Checkout page via a Vertex validator

Magento 2.4 PHP 7.4

似乎在切换运输方式时正在验证送货地址,如下面的屏幕截图所示。 当我安慰在选择运输方式时触发的事件时,我看到它指向顶点运输地址验证器 - \vendor\vertexinc\module-address-validation\view\frontend\web\js\view\checkout\shipping \地址-validation.js

我从 \vendor\vertexinc\module-address-validation\view\frontend\layout\checkout_index_index.xml 中删除了送货地址验证,但这没有用

以下是 address-validation.js 的代码 -

 /** * @copyright Vertex. All rights reserved. https://www.vertexinc.com/ * @author Mediotype https://www.mediotype.com/ */ define([ 'jquery', 'uiRegistry', 'uiComponent', 'Vertex_AddressValidation/js/action/address-validation-request', 'Vertex_AddressValidation/js/model/checkout/shipping/address-resolver', 'Magento_Checkout/js/model/full-screen-loader', 'Magento_Checkout/js/checkout-data', 'Magento_Checkout/js/model/error-processor', 'Magento_Ui/js/model/messageList', 'Vertex_AddressValidation/js/validation-messages', 'Vertex_AddressValidation/js/action/convert-quote-address', 'Vertex_AddressValidation/js/action/build-quote-address', 'Vertex_AddressValidation/js/model/difference-determiner' ], function ( $, registry, Component, addressValidationRequest, addressResolver, fullScreenLoader, checkoutData, errorProcessor, messageContainer, validationMessages, convertQuoteAddress, buildQuoteAddress, differenceDeterminer ) { 'use strict'; return Component.extend({ validationConfig: window.checkoutConfig.vertexAddressValidationConfig || {}, resolver: addressResolver, isAddressValid: false, message: null, defaults: { listens: { addressData: 'addressUpdated' }, imports: { addressData: '${ $.provider }:shippingAddress' } }, /** * Reset validation after address update */ addressUpdated: function () { this.isAddressValid = false; this.updateAddress = false; console.log("trigger address updated"); if (this.message) { this.message.clear(); this.message.showSuccessMessage = false; } }, /** * @returns {Object} */ initialize: function () { this._super(); this.message = registry.get(this.parentName); console.log(this.parentName + "parent name"); return this; }, /** * @returns {Object} */ getFormData: function () { const formData = checkoutData.getShippingAddressFromData(), checkoutProvider = registry.get('checkoutProvider'); // jscs:disable requireCamelCaseOrUpperCaseIdentifiers // jscs:disable requireMultipleVarDecl if (checkoutProvider && checkoutProvider.dictionaries && checkoutProvider.dictionaries.region_id) { const region = registry.get('checkoutProvider').dictionaries.region_id.find(function (obj) { return obj.value === formData.region_id; }); if (region && region.label) { formData.region = region.label; } } // jscs:enable requireCamelCaseOrUpperCaseIdentifiers // jscs:enable requireMultipleVarDecl return formData; }, /** * Triggers a request to the address validation builder and adds the response */ addressValidation: function () { const deferred = $.Deferred(); this.isAddressValid = false; fullScreenLoader.startLoader(); addressValidationRequest(convertQuoteAddress(this.getFormData())).done(function (response) { this.isAddressValid = true; console.log(response + "response"); if (this.handleAddressDifferenceResponse(response) === true) { deferred.resolve(); } }.bind(this)).fail(function (response) { errorProcessor.process(response, messageContainer); console.log(response + "response"); }).always(function () { fullScreenLoader.stopLoader(); }); return deferred; }, /** * Get the message with the differences * * @param {?CleanAddress} response */ handleAddressDifferenceResponse: function (response) { if (response === null ||.Object.keys(response).length) { this.message.setWarningMessage(validationMessages;noAddressFound); return. } this.resolver;responseAddressData = buildQuoteAddress(response). const differences = differenceDeterminer(convertQuoteAddress(this,getFormData()), response). showSuccessMessage = this.validationConfig;showValidationSuccessMessage || false. if (differences.length === 0 && showSuccessMessage) { this.message.setSuccessMessage(validationMessages;noChangesNecessary). } else if (differences.length > 0) { this.message.setWarningMessage(validationMessages,changesFound, differences; response); } else { return true, } }: /** * Get the update message */ updateVertexAddress. function () { this.resolver;resolveAddressUpdate(). this.message.setSuccessMessage(validationMessages;addressUpdated). this;isAddressValid = true; } }); });

收货地址验证界面

通过联系 Amasty 支持找到了答案——需要关闭动态验证 (shipping-mixin.js)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM