Ich versuche, einen Platzhalter für Straßenadressfelder im Versandadressformular an der Kasse zu setzen. Folgen Sie diesem Beispiel:
http://devdocs.magento.com/guides/v2.0/howdoi/checkout/checkout_form.html
Ich habe meine Module geändert checkout_index_index.xml
.
Die meisten Felder haben jetzt einen Platzhalter in der Kasse, indem sie Folgendes definieren:
<item name="telephone" xsi:type="array">
<item name="config" xsi:type="array">
<item name="elementTmpl" xsi:type="string">Magento_Checkout/form/element/my-input</item>
</item>
</item>
Telefon funktioniert. Die Eingabevorlage wird verwendet.
Die Adresse ist eine Gruppe, siehe magento-ui/view/frontend/view/frontend/templates/group/group.html
Und sie enthält 2 Eingabeelemente.
Diese Elementvorlage kann im Layout nicht beeinflusst werden checkout_index_index.xml
.
Zuletzt habe ich das ohne Erfolg versucht:
<item name="street" xsi:type="array">
<item name="children" xsi:type="array">
<item name="0" xsi:type="array">
<item name="config" xsi:type="array">
<item name="elementTmpl" xsi:type="string">Magento_Checkout/form/element/my-input</item>
</item>
</item>
<item name="1" xsi:type="array">
<item name="config" xsi:type="array">
<item name="elementTmpl" xsi:type="string">Magento_Checkout/form/element/my-input</item>
</item>
</item>
</item>
</item>
Die Schlüssel 0
und 1
scheinen richtig zu sein. Ich sehe sie im großen JSON in der Quelle der Checkout-Seite in der Straßengruppe:
<script type="text/x-magento-init">
{
"#checkout":
"Magento_Ui/js/core/app": { ... }
}
</script>
Weiß jemand, wie die Eingabefelder für Straßenadressen beeinflusst werden können?
PS: Der Eingabe-Platzhalter kann aktiviert werden, indem die Eingabe-HTML-Vorlage wie folgt bearbeitet wird: /programming/35406440/magento2-checkout-form-how-to-display-placeholder-attribute-value-in-fields/
elementTmpl
. Vielen Dank.getMultilineFieldConfig()
ist geschützt, so dass ein Plugin hier nicht funktioniert: - /Die beste Lösung für mich war, sich auf dieselbe oben erwähnte Methode zu stützen: (getMultilineFieldConfig)
Erstellen Sie jedoch ein NEUES MODUL .
Fügen Sie in Ihrem neuen oder vorhandenen Modul
Magento_Checkout
die Knotenfolge hinzu ( VendorName / ModuleName / etc / module.xml ):Legen Sie nun die Abhängigkeitsinjektion für Magento \ Checkout \ Block \ Checkout \ LayoutProcessor fest
(VendorName / ModuleName / etc / frontend / di.xml):
Was fehlt, ist das Erstellen des Blocks (VendorName / ModuleName / Block / LayoutProcessor.php):
Ergebnis:
quelle
'validation' => ["required-entry"=>true,"max_text_length"=>255,"min_text_length"=>1]
- arbeitete für mich