チェックアウトの配送セクションに非表示フィールドを追加しました。フィールドが表示されている場合-検証は機能しますが、非表示にした場合-検証がありません。
[次へ]ボタンをクリックして、支払いから配送に進むのを防ぎ、エラーメッセージまたはユーザーへの警告を表示する必要があります。
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