So senden Sie ein Kundenpasswort in einer Begrüßungsmail in Magento 2

8

Ich weiß, dass das Kundenkennwort aus Sicherheitsgründen aus Magento 2 entfernt wurde, dies ist jedoch erforderlich.

Standardmäßig wird Magento 2kein Passwort für die E-Mail- Adresse eines neuen Kontos angegeben. Wir haben jedoch ein Passwort in der Begrüßungs-E-Mail benötigt.

Standard Magento 2 Mail-Vorlage:

<!--@vars { 
"var this.getUrl($store, 'customer/account/')":"Customer Account URL",
"var customer.email":"Customer Email",
"var customer.name":"Customer Name"
} @-->

{{template config_path="design/email/header_template"}}

<p class="greeting">{{trans "%name," name=$customer.name}}</p>
<p>{{trans "Welcome to %store_name." store_name=$store.getFrontendName()}}</p>
<p>
    {{trans
        'To sign in to our site, use these credentials during checkout or on the <a href="%customer_url">My Account</a> page:'

        customer_url=$this.getUrl($store,'customer/account/',[_nosid:1])
    |raw}}
</p>
<table class="email-credentials">
    <tr>
        <th>{{trans "Email:"}}</th>
        <td>{{var customer.email}}</td>
    </tr>
    <tr>
        <th>{{trans "Password:"}}</th>
        <td><em>{{trans "Password you set when creating account"}}</em></td>
    </tr>
</table>

Ich möchte: {{var customer.password}}

Das Problem ist jedoch, dass das Kennwort nicht in der E-Mail festgelegt wird.

Können Sie mir bitte mitteilen, wie ich das Kundenkennwort in der E-Mail-Vorlage oder einer anderen Lösung festlegen kann?

Nikunj Vadariya
quelle
Warten auf detaillierte Antwort.
Nikunj Vadariya
Ja, ich habe es versucht, aber es funktioniert nicht.
Nayana Chandran
Dies gibt keine Antwort auf die Frage. Sobald Sie einen ausreichenden Ruf haben, können Sie jeden Beitrag kommentieren . Geben Sie stattdessen Antworten, die nicht vom Fragesteller geklärt werden müssen . - Aus dem Rückblick
Rama Chandran M

Antworten:

4

Die E-Mail-Vorlagenvariable {{var customer.password}} wurde aus Sicherheitsgründen aus Magento 2 entfernt. Wenn Sie das Kennwort bei der Erstellung eines neuen Kontos an einen Kunden senden möchten, müssen Sie Ihre benutzerdefinierte E-Mail-Vorlage verwenden. Befolgen Sie die folgenden Schritte.

  1. Fügen Sie die Aktion eines benutzerdefinierten Controllers in Ihr Anmeldeformular ein.
  2. Holen Sie sich die E-Mail und das Passwort mithilfe der Post-Methode in Ihren benutzerdefinierten Controller.
  3. Erstellen Sie eine benutzerdefinierte E-Mail-Vorlage und speichern Sie Ihr Kennwort in einer benutzerdefinierten Variablen.
  4. Jetzt können Sie das Kundenkennwort mithilfe einer benutzerdefinierten Variablen senden.
Dinesh Yadav
quelle
2
Vielleicht wäre es eine schönere Lösung, ein Plugin / Interceptor anstelle eines benutzerdefinierten Controllers zu verwenden. Sie können \Magento\Customer\Controller\Account\CreatePost::execute()das Kennwort abrufen und \Magento\Customer\Model\AccountManagement::createAccountWithPasswordHash()das Kennwort als benutzerdefiniertes Attribut oder Erweiterungsattribut zum Kundendatenmodell hinzufügen. Sie müssten jedoch die E-Mail-Vorlage überschreiben, um das Kennwort einzuschließen. Ich bin nicht sicher, wie ich dort ein benutzerdefiniertes Attribut oder ein Erweiterungsattribut abrufen soll, aber vielleicht hilft Ihnen das ein bisschen.
Giel Berkers
1

Wie Dinesh erwähnte, wurde das Passwort des Kunden aus Sicherheitsgründen aus Magento 2 entfernt. Wenn Sie es wieder hinzufügen, wird Ihr Geschäft weniger sicher.

Wenn Sie sich nicht sicher sind, ob Besucher sich ihre Passwörter merken können, stellen Sie sicher, dass die Forgot PasswordFunktionalität hervorgehoben und für Ihre Benutzer einfach zu verwenden ist.

Jeff Monschke
quelle
Ja, ich weiß, dass Magento 2 es aus Sicherheitsgründen entfernt hat, aber aufgrund seiner Anforderungen.
Nikunj Vadariya
0

Erstellen Sie einfach eine E-Mail-Vorlage für ein neues Konto aus Marketing -> Email Templateund

   <tr>
       <th>{{trans "Password:"}}</th>
       <td><em>{{trans "Password you set when creating account"}}</em>     </td>
   </tr>

Sie müssen den folgenden Weg anstelle des obigen Codes in der E-Mail-Vorlage verwenden.

<tr>
   <th>{{trans "Password:"}}</th>
   <td><em>{{var customer.password}}</em></td>
</tr>

Legen Sie nun Ihre E-Mail-Vorlage für das neue Konto von fest Stores -> Customer Configuration

Cache leeren.

Rakesh Jesadiya
quelle
Die E-Mail-Vorlage enthält keine Kennwortvariable. Wie kann ich also hinzufügen? {{var customer.password}}
Nikunj Vadariya
Sie müssen nur {{var customer.password}} festlegen, um ein einfaches Kundenkennwort per E-Mail zu erhalten.
Rakesh Jesadiya
Standardmäßig hat die E-Mail-Vorlage "Neues Konto" ein Kundenobjekt und das Kundenobjekt enthält ein Kennwortfeld. so können Sie direkt wie oben verwenden.
Rakesh Jesadiya
Es gibt ein verschlüsseltes Passwort im
Kundenobjekt.
Nein, das Kundenpasswort ist leer
Igor Revenko