Xác nhận trường tùy chỉnh kiểm tra Magento 2


11

Thanh toán Magento2 - phương pháp tốt nhất để thêm xác thực cho trường thanh toán tùy chỉnh của tôi phụ thuộc vào phương thức giao hàng đã chọn là gì?

Ví dụ: tôi đang thêm trường vào mẫu địa chỉ trong LayoutProcessor nơi tôi có thể chỉ định quy tắc xác thực. Tôi cần phải thực hiện trường này nếu nhà mạng tùy chỉnh của tôi được chọn.

Mục tiêu của tôi là ngăn người dùng chuyển sang bước tiếp theo nếu trường tùy chỉnh của tôi không được điền. Tôi biết tôi có thể thêm xác thực tùy chỉnh trước khi đặt hàng (bước Xem lại & Thanh toán) nhưng tôi cần xác thực một bước trước đó.


Xin chào, bạn đã giải quyết vấn đề này như thế nào?
simonthesorcerer

@ maciej-domski Bạn đã giải quyết điều này?
Ranjit Shinde

Điều này có thể giúp những người khác magento.stackexchange.com/questions/262239/ Kẻ
Prathap Gunasekaran

@Maciej Domski kiểm tra câu trả lời của tôi. Tôi đã thử nó để nhận email xác nhận và đó là mã hoạt động
Ketan Borada

Câu trả lời:


1

hãy thử điều này, chỉ cần thêm 'xác thực' => ['bắt buộc nhập' => đúng] như bên dưới trong plugin LayoutProcessor

'config' => [
                'customScope' => 'shippingAddress',
                'template' => 'ui/form/field',
                'elementTmpl' => 'ui/form/element/input',
                'options' => [],
                'id' => 'custom_field'
            ],
            'dataScope' => 'customfield',
            'label' => 'custom field # :',
            'provider' => 'checkoutProvider',
            'validation' => ['required-entry' => true],
            'visible' => true,
            'sortOrder' => 250,
            'id' => 'custom_field'

0

có, có thể bằng cách thay đổi trong Magento_Checkout / js / model / Shipping-save-bộ xử lý / default.js

Tôi đã thêm trường confirm emailphải giống như emailvà trường bắt buộc trong thanh toán, bạn có thể tùy chỉnh theo yêu cầu.

app\code\Ketan\Checkout\view\frontend\requirejs-config.js

var config = {
    "map": {
       "*": {
           "Magento_Checkout/js/model/shipping-save-processor/default" : "Ketan_Checkout/js/shipping-save-processor"
       }
   }
}

mở rộng js file app\code\Ketan\Checkout\view\frontend\web\js\shipping-save-processor.js

/*
* *
*  @author DCKAP Team
*  @copyright Copyright (c) 2018 DCKAP (https://www.dckap.com)
*  @package Dckap_CustomFields
*/
define(
   [
       'ko',
       'Magento_Checkout/js/model/quote',
       'Magento_Checkout/js/model/resource-url-manager',
       'mage/storage',
       'Magento_Checkout/js/model/payment-service',
       'Magento_Checkout/js/model/payment/method-converter',
       'Magento_Checkout/js/model/error-processor',
       'Magento_Checkout/js/model/full-screen-loader',
       'Magento_Checkout/js/action/select-billing-address',
       'jquery'
   ],
   function (
       ko,
       quote,
       resourceUrlManager,
       storage,
       paymentService,
       methodConverter,
       errorProcessor,
       fullScreenLoader,
       selectBillingAddressAction,
       $
   ) {
       'use strict';

       return {
           saveShippingInformation: function () {
               var payload;

               var username = $("#customer-email").val();
               var conformusername = $("#conformusername").val();

              /*============ Customization Start =============*/
              //if(quote.shippingMethod().method_code=='flaterate'){ // Check if flaterate is selected
                if(conformusername != username){
                  $("#conformusername-error").show(); // show hidden message
                  $("#conformusername").focus();      // move cursor to the point
                  return false;
                 }
              // }
              /*============ Customization End =============*/


               if (!quote.billingAddress()) {
                   selectBillingAddressAction(quote.shippingAddress());
               }
               payload = {
                   addressInformation: {
                       shipping_address: quote.shippingAddress(),
                       billing_address: quote.billingAddress(),
                       shipping_method_code: quote.shippingMethod().method_code,
                       shipping_carrier_code: quote.shippingMethod().carrier_code
                   }
               };
               fullScreenLoader.startLoader();

               return storage.post(
                   resourceUrlManager.getUrlForSetShippingInformation(quote),
                   JSON.stringify(payload)
               ).done(
                   function (response) {
                       quote.setTotals(response.totals);
                       paymentService.setPaymentMethods(methodConverter(response.payment_methods));
                       fullScreenLoader.stopLoader();
                   }
               ).fail(
                   function (response) {
                       errorProcessor.process(response);
                       fullScreenLoader.stopLoader();
                   }
               );
           }
       };
   }
);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.