Hallo,
ist es möglich, die interne OptIn-Implementierung von Contao relativ einfach über ein eigenes Skript "anzusteuern"?
Mehrere Formulare mit einer Checkbox für zusätzliche Newletteranmeldung, und der jeweiligen Verarbeitung mit Mailversand im Notification Center existieren schon. Allerdings noch ohne das Double-Opt-In. Die Generierung des Tokens fürs Double-Opt-In wollte ich kompakt einfügen, bevor die Daten im Notification Center weiterverarbeitet werden:
PHP-Code:
namespace App\EventListener;
use Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
use Contao\Form;
#[AsHook('prepareFormData')]
class PrepareFormDataListener
{
public function __invoke(array &$submittedData, array $labels, array $fields, Form $form): void
{
// Hier soll ein OptIn Token generiert werden
$submittedData['opt-in-link'] = "http://beispiel.url?token=123";
}
}
Eine grobe Herangehensweise für das Double-Opt-In wird in der Dokumentation beschrieben: https://docs.contao.org/dev/reference/services/#optin
Allerdings fehlt mir da einiges an Hintergrundwissen über Contao/Symfony...
Eine kompakte Lösung wüde mir vorschweben, die dann ungefähr so aussehen könnte:
PHP-Code:
$token = $this->optIn->create('exampl-', $submittedData['email'], ['tl_example' => [$model->id]]);
$submittedData['opt-in-link'] = "http://beispiel.url?token=".$token;
Wie gesagt fehlt mir das Wissen um das "Drumherum" von Contao. Also ob es eine einfache Möglichkeit gibt, z.B. über Dependency Injection an ein OptIn-Objekt zu kommen, das dann das macht was ich vorhabe, oder ob ich mit meinen Kentnissen da lieber die Finger von lassen sollte
Ich bin über jede Hilfe dankbar!
LG
Lesezeichen