Ich habe dem Versandbereich der Kasse ein verstecktes Feld hinzugefügt. Wenn das Feld sichtbar ist - die Validierung funktioniert, aber wenn ich es ausgeblendet habe - fehlt eine Validierung.
Sie müssen verhindern, dass der Versand weiter zur Zahlung erfolgt, indem Sie auf die Schaltfläche "Weiter" klicken und eine Fehlermeldung oder eine Benachrichtigung für den Benutzer anzeigen.
Gibt es eine Möglichkeit, dies über LayoutProcessor zu machen?
Oder um die Magento-Validierung in meinem Modul zu diesem Zweck zu erweitern?
Andere Versionen werden ebenfalls hilfreich sein.
UPD: Vielleicht ist dies hilfreich für die Antwort. Im Moment wird versucht, eine Validierung ähnlich dem E-Mail-Feld an der Kasse durchzuführen. Die Idee ist als nächstes. Erstellen Sie ein benutzerdefiniertes Formular (wie ein E-Mail-Feld in einem separaten Formular) und überprüfen Sie es gemäß diesem Dokument 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;
}
}