Das Template <keyword>request.liquid</keyword> rendert den Request-Step des Password-Reset-Workflows und ist Schritt 1 des 3-Schritt-Verfahrens mit dem ein Account-Besitzer sein Passwort neu vergeben kann.
Das Template muss unter <keyword>templates/password_reset/request.liquid</keyword> abgelegt werden.
Innerhalb des <keyword>request.liquid</keyword> Templates stehen folgende Objekte zur Verfügung:
Ein Account-Besitzer hat sein Login-Passwort vergessen, kennt jedoch noch den Username seines Accounts. Der Password-Reset-Workflow ermöglicht es dem Account-Besitzer, über folgendes 3-Schritt-Verfahren sein Passwort neu zu vergeben:
Der hier beschriebene Request-Step ist Schritt 1 bzw. der Einstieg des Account-Besitzers in das 3-Schritt-Verfahren. Sobald das hier beschriebene Template hinterlegt ist, kann der Request-Step immer über die fixe/statische URL "/password_reset/request/" relativ zu der Domain Ihres Webshops erreicht werden.
Sehen Sie weiterführend auch folgende Beschreibungen um das Email-Template für Schritt 2 und den Set-New-Passwort-Step für Schritt 3 zu hinterlegen:
Das nachfolgende Beispiel zeigt das Markup des Request-Steps.
In dem Beispiel wird ein HTML-Form aufgebaut. Das HTML-Form schickt den erfassten Username an die Webshop-Software zur Verarbeitung. Damit die Webshop-Software den Username verarbeiten kann, muss das Formularfeld wie hier ersichtlich mit dem Wert bestückt werden, der über das <obj>password_reset_workflow:workflow#step-1</obj> Objekt zur Verfügung steht. Um Spam und missbräuchliche Verwendung des Formulars zu verhindern, ist standardmäßig eine Captcha-Prüfung aktiviert. Sie müssen daher auch wie im Beispiel ersichtlich eine Captcha-Box anzeigen. Wenn das Captcha falsch ausgefüllt wurde, findet keine Weiterleitung der Email-Nachricht statt. Der (mögliche) Account-Besitzer wird dann aufgefordert, das Captcha entsprechend zu korrigieren, bevor er es erneut versuchen kann.
<h2>Request new password</h2>
{% assign form = workflow.current_step.forms.customer_email %}
{% if form.post_successful == true %}
{% comment %}Success message{% endcomment %}
Thank you for your request!<br/><br/>
An email has been sent to the email address of your customer account.<br/>
Please open this email and follow the instructions in the email.<br/>
Please note, that you should do this within {{ workflow.current_step.link_duration }} hours. <br/><br/>
If you do not receive this email, please contact our customer service: {{ workflow.current_step.contact_email }}<br/>
Please check beforehand, whether the email has been received in your spam folder and note that the delivery may take up to 15 minutes, depending on the email provider.
{% else %}
{% comment %}Request form{% endcomment %}
<form method="post" action="{{ form.action }}">
{% unless form.valid %}
<p><b>There are errors in this form.</b></p>
{% endunless %}
{% if form.recaptcha.recaptcha_challenge_error == true %}
<p><b>Please check the completed captcha!</b></p>
{% endif %}
<ul>
<li>
{% comment %}Field for username{% endcomment %}
<label for="{{ form.fields.user_name.name }}">E-Mail *</label>
<input type="email"
{% if form.fields.user_name.required %}required{% endif %}
{% if form.fields.user_name.max_length %}maxlength="{{ form.fields.user_name.max_length }}"{% endif %}
name="{{ form.fields.user_name.name }}"
value="{{ form.fields.user_name.value }}" />
</li>
<li>
{% comment %}Google-ReCaptcha2{% endcomment %}
<script type="text/javascript" src='https://www.google.com/recaptcha/api.js' async defer></script>
<label {{ form.recaptcha.recaptcha_sitekey }} >Captcha *</label>
<div class="g-recaptcha" data-sitekey="{{ form.recaptcha.recaptcha_sitekey }}"></div>
</li>
</ul>
{% comment %}Submit-Button{% endcomment %}
<input type="submit" value="Continue">
</form>
{% endif %}