チェックアウトの配送セクションに非表示フィールドを追加しました。フィールドが表示されている場合-検証は機能しますが、非表示にした場合-検証がありません。
[次へ]ボタンをクリックして、支払いから配送に進むのを防ぎ、エラーメッセージまたはユーザーへの警告を表示する必要があります。
LayoutProcessorを使用してこれを作成する方法はありますか?
または、この目的のために私のモジュールでmagento検証を拡張するには?
他のバージョンも役に立ちます。
UPD:多分これは答えに役立つでしょう。現在、チェックアウト時に電子メールフィールドと同様の検証を実行しようとしています。アイデアは次です。カスタムフォーム(別のフォーム内にあるメールフィールドなど)を作成し、このドキュメントhttp://devdocs.magento.com/guides/v2.0/howdoi/checkout/checkout_form.html#templateに従って検証します
<?php
namespace Modules\Deliverydate\Model\Checkout;
class LayoutProcessorPlugin
{
    /**
     * @param \Magento\Checkout\Block\Checkout\LayoutProcessor $subject
     * @param array $jsLayout
     * @return array
     */
    public function afterProcess(
        \Magento\Checkout\Block\Checkout\LayoutProcessor $subject,
        array  $jsLayout
    ) {
        $jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']['children']
        ['shippingAddress']['children']['shipping-address-fieldset']['children']['delivery_slot'] = [
            'component' => 'Magento_Ui/js/form/element/abstract',
            'config' => [
                'customScope' => 'shippingAddress',
                'template' => 'ui/form/field',
//                'elementTmpl' => 'ui/form/element/date',
                'options' => [],
                'id' => 'enteredSlot'
            ],
            'dataScope' => 'shippingAddress.enteredSlot',
            'label' => 'Delivery Slot',
            'provider' => 'checkoutProvider',
            'visible' => false,
            'validation' => [
//                'required-entry' => true,
                'validate-no-empty' => true,
            ],
            'sortOrder' => 1,
            'id' => 'enteredSlot'
        ];
        return $jsLayout;
    }
}
                  あなたのMagentoバージョンはどちらですか?
                
                
                  
                    —
                    Khoa TruongDinh 
                    
                  
                
              
                  @KhoaTruongDinh 2.1.0
                
                
                  
                    —
                    ホワイトインプ
                    
                  
                
              
                  配送フォームにチェックボックスを作成し、ログインしたユーザーにはチェックボックスを表示しましたが、ゲストには非表示にしており、検証に問題はありません。私はoyenetwork.com/articles/…をフォローしてフォームをカスタマイズしました。このプロセスは、カスタマイズにLayoutProcessorを使用します。お役に立てば幸いです
                
                
                  
                    —
                    Ekta Puri 
                    
                  
                
              
                  そうでない場合は、もう少し詳細を
                
                
                  
                    —
                    記入して
                    
                  
                
              
                  @EktaPuriありがとうございます。「大江」にも従いましたが、少し異なるタスクがあります。ユーザーが日付と時間の範囲を決定することを意味するボタンの1つをチェックすることにより、配達日を選択します(つまり、利用可能な日付と時間の範囲のセットをユーザーに提案することを意味します)。このデータを処理して検証する必要があります。そのため、データを隠しフィールド(複数可)に入れて処理することにしました。そして「ログに記録されたユーザーに表示される」について:ユーザーがすでにシステムに有効なアドレスを追加している場合-表示フィールドは非表示になります。したがって、ここにフィールドを配置する必要があります['shippingAddress'] ['children'] ['shippingAdditional'] ['children'] ['delivery_date']
                
                
                  
                    —
                    white-imp