Hi, ist es möglich eine Newsletteranmeldung im Anfrage-Formular zu erstellen? Oder über eine Checkbox, wenn diese aktiviert wird, die Email in die Datenbank zu schreiben? Grüße
Guten Morgen, ist meine Fragestellung falsch oder warum bekomme ich hier nie eine Antwort? Zumindest ein: Nein geht nicht oder so?
Hallo, nein - ist im Standard mit Bordmitteln nicht abbildbar. Die Formulare sind eigenständig und so nicht direkt kombinierbar mit der Newsletteranmeldung Sebastian
Ok, habe mir so geholfen: Im Anfrage-Formular eine Checkbox hinzugefügt: Name: newsletterja Bezeichnung: Newsletter Option: Ja Unter Stammdaten des Formulars: Newsletter: {sVars.newsletter} In der Forms.php folgenden Block geändert wie folgt: /\*\* \* Commit Formular via email (default) or database (ticket-system) \* \* @throws Enlight\_Exception \* @return void \*/ public function commitForm() { $mail = Shopware()-\>System()-\>sMailer; $template = Shopware()-\>Config()-\>Templates-\>sSUPPORT; $mail-\>IsHTML($template['ishtml']); //eMail field available check foreach ($this-\>\_elements as $element) { if ($element['typ'] == "email") { $postEmail = $this-\>\_postData[$element['id']]; $postEmail = trim($postEmail); } } if (!empty($postEmail)) { $mail-\>From = $postEmail; } else { $mail-\>From = Shopware()-\>Config()-\>Mail; } if (isset($\_REQUEST['newsletterja'])) { $newsletteranmeldung = $\_REQUEST['newsletterja']; reset($\_REQUEST['newsletterja']); $newslettermailadresse = $postEmail; $sql = "INSERT INTO s\_campaigns\_mailaddresses (customer, groupID, email, lastmailing, lastread) VALUES ('0', '186', '$newslettermailadresse', '0', '0')"; $dbData = Shopware()-\>Db()-\>query($sql); } $content = $this-\>View()-\>sSupport; $mail-\>FromName = $mail-\>From; $mail-\>Subject = $content["email\_subject"]; $mail-\>Body = $content["email\_template"]; foreach ($this-\>\_postData as $key =\> $value) { if ($this-\>\_elements[$key]['typ'] == "text2") { $names = explode(";", $this-\>\_elements[$key]['name']); $mail-\>Body = str\_replace("{sVars." . $names[0] . "}", $value[0], $mail-\>Body); $mail-\>Body = str\_replace("{sVars." . $names[1] . "}", $value[1], $mail-\>Body); } else { $mail-\>Body = str\_replace("{sVars." . $this-\>\_elements[$key]['name'] . "}", $value, $mail-\>Body); } } if (!empty($newsletteranmeldung)){ $mail-\>Body = str\_replace("{sVars.newsletter}", "Ja", $mail-\>Body); } else {$mail-\>Body = str\_replace("{sVars.newsletter}", "Nein", $mail-\>Body); } $mail-\>Body = str\_replace("{sIP}", $\_SERVER['REMOTE\_ADDR'], $mail-\>Body); $mail-\>Body = str\_replace("{sDateTime}", date("d.m.Y h:i:s"), $mail-\>Body); $mail-\>Body = str\_replace('{$sShopname}', Shopware()-\>Config()-\>shopName, $mail-\>Body); $mail-\>Body = strip\_tags($mail-\>Body); $mail-\>ClearAddresses(); $mail-\>AddAddress($content["email"], ""); if (!$mail-\>Send()) { throw new Enlight\_Exception("Could not send mail"); } }
Bei $sql = "INSERT INTO s\_campaigns\_mailaddresses (customer, groupID, email, lastmailing, lastread) VALUES ('0', '186', '$newslettermailadresse', '0', '0')";
muss die groupID an die vorhandene angepasst werden