Wie kann ich die Formular-URL bei Freeform ändern?
- Einführung
- Was bedeutet die Formular-URL bei Freeform?
- Ändern der Formular-URL über das Template
- Alternative Möglichkeit: Formular-Verhalten per Redirect nach Absenden anpassen
- Wichtige Hinweise zur Verwendung einer benutzerdefinierten URL
- Zusammenfassung
Einführung
Freeform ist ein populäres Plugin für Craft CMS, das es ermöglicht, Formulare unkompliziert zu erstellen und zu verwalten. Bei der Einrichtung eines Formulars wird oft eine standardmäßige URL festgelegt, an die die Formular-Daten gesendet werden. In manchen Fällen möchten Sie diese URL ändern, sei es um die Daten an eine andere Stelle zu senden, oder um das Verhalten beim Absenden des Formulars zu steuern. Im Folgenden erkläre ich ausführlich, wie Sie die Formular-URL bei Freeform ändern können.
Was bedeutet die Formular-URL bei Freeform?
Die Formular-URL ist im Grunde genommen die Adresse, an die das Formular die eingegebenen Daten mittels HTTP-Request (typischerweise POST) übermittelt, sobald der Benutzer auf den Absenden-Button klickt. Standardmäßig wird in Freeform das eigene System von Craft CMS verwendet, dem Plugin übergeben diese Daten zur Verarbeitung. Wenn Sie jedoch eine andere URL verwenden möchten, beispielsweise um die Daten an einen externen Server weiterzuleiten, müssen Sie diesen sogenannten Action-Endpoint anpassen.
Ändern der Formular-URL über das Template
Der einfachste Weg, die Formular-URL anzupassen, ist über das Twig-Template, in dem Sie Ihr Freeform-Formular einbinden. Freeform stellt dabei normalerweise einen Twig-Tag wie {{ craft.freeform.form(formHandle) }} bereit. Sie können aber auch das Attribut action direkt angeben, um die Ziel-URL zu überschreiben.
Ein Beispiel, wie Sie die URL im Template ändern können, ist folgendermaßen:
{% set form = craft.freeform.form(kontakt) %}{{ form .action(https://example.com/form-submit-endpoint) .render() }}Hier wird mit der Methode action() die neue URL https://example.com/form-submit-endpoint gesetzt. Das Formular sendet die Daten dann an diese externe URL statt an die Standardverarbeitung von Freeform.
Alternative Möglichkeit: Formular-Verhalten per Redirect nach Absenden anpassen
Falls Sie hingegen nicht die tatsächliche URL ändern wollen, an die das Formular gesendet wird, sondern nur bestimmen möchten, wohin der Benutzer nach dem Absenden weitergeleitet wird, können Sie in Freeform im Backend bei den Formulareinstellungen eine Weiterleitungs-URL definieren. Diese URL wird aufgerufen, nachdem das Formular erfolgreich abgeschickt wurde.
Wichtige Hinweise zur Verwendung einer benutzerdefinierten URL
Wenn Sie die URL ändern und die Daten an einen externen Dienst senden, sollten Sie sicherstellen, dass dieser Dienst die Daten in dem Format verarbeiten kann, das Freeform sendet. Standardmäßig sendet Freeform Formular-Daten per POST im klassischen Form-URL-kodierten Format. Außerdem wird die interne Validierung und Handhabung von Fehlermeldungen nicht mehr von Freeform übernommen, wenn Sie auf eine eigene URL umleiten.
Falls Sie weiterhin alle Vorteile von Freeform nutzen möchten, wie Validierung, Speicherung der Einträge und Benachrichtigungen, empfiehlt es sich, die Standard-URL beizubehalten und statt einer Weiterleitung nur das Redirect-Feature von Freeform zu verwenden oder eigene Hooks und Events zu programmieren.
Zusammenfassung
Das Ändern der Formular-URL bei Freeform erfolgt primär über die Definition der action() Methode im Twig-Template, über die Sie eine beliebige Zieladresse festlegen können. Alternativ können Sie im Freeform-Backend eine Weiterleitungs-URL (Redirect) angeben, falls es nur um die Zielseite nach der erfolgreichen Formularübermittlung geht. Wichtig ist es dabei, die Konsequenzen für Validierung, Datenverarbeitung und Benutzerführung zu beachten, wenn Sie eine fremde URL verwenden.
