Newsletter Double Opt In und andere Probleme

Hallo, ich setzte mich gerade mit der Gesetzesänderung die am 31.08.2012 in Kraft tritt auseinander. Da die Double Opt In funktion nicht greift wenn der Newsletter über das Kundenkonto aktiviert wird, habe ich das Plugin welches man hier im Forum findet installiert. Funktioniert einwandfrei, bis das die Meldung beim aktivieren des Newsletters nicht stimmt. Auch dort müsste es heißen Ihnen wird eine Bestätigungsmail gesendet (nur so nebenbei). Nun ja, mir ist aber folgendes aufgefallen, wenn der Kunde im Kundenkonto auf Newsletter aktivieren klickt werden in die Tabelle S_Champaigns_Data nur die Emailadresse übernommen, nur wenn man über den Menüpunkt Newsletter bestellen (erweiterte Newsletter Abfrage aktiviert) den Newsletter bestellt werden dort auch die restlichen Daten übernommen. Heißt eigentlich, dass wenn ich einen Newsletter mit persönlicher Anrede erstelle bleibt die Anrede bei allen, die den Newsletter über das Kundenkonto aktiviert haben leer. Ist das so gewollt oder ist das ein Bug ? Generell erschließt sich mir der Aufbau der Newsletter Empfänger nicht so ganz. Unter s_user gibt es einen Wert „Newsletter“ dieser ist aber immer auf 0. Wenn ich Ihn auf 1 setze wird der Kunde nicht in die S_Chamapaigns_Mailadresses und Data übernommen. Wofür ist dann dieser Wert ? Das nächste Problem was ich habe ist, dass wir zur Zeit 3 Kundengruppen haben und ich die Kunden der Newsletter-Empfänger Gruppe hinzufügen möchte. Was ich aber nicht ganz verstehe ist, dass ich beim Newsletter erstellen die Möglichkeit habe alle drei Kundengruppen als Empfänger anzuklicken (finde ich rechtlich bedenklich denn eigentlich darf ich ja nur an Empfänger schicken die den Empfang bestätigt haben somit ist die Double Optin funktion umgangen) Wofür gibt es dann die Gruppe Newsletter-Empfänger ? Viel wichtiger ist jedoch wie registriert das System eine Newsletterabmeldung ? Löscht er den Datensatz in der S-Champaigns_Mailadresses ? Wenn dem so wäre wofür brauche ich dann eine Empfängergruppe ? Wäre es dann nicht viel einfacher gewesen das ganze über die S_user zu steuern ? Also bei Newsletter 0 Datensatz in der S-Champaigns_Mailadresses löschen wenn 1 dann reinschreiben ? Kann mir das jemand erklären.

Hallo, kannst du mir sagen, wie das Plugin heißt, das du installiert hast? Ich finde dazu nichts und brauche genau die gleiche Lösung: Double-opt-in für die Newsletter-Anmeldung über das Kundenkonto. Wäre nett, wenn du mir einen Link postest. Danke. Grüße Martina

http://forum.shopware.de/allgemeines-f2/newsletteranmeldung-bei-registrierung-ohne-bestatigungsmail-t4176-10.html [code]<?php /**

  • Simple Plugin to add newsletter confirmation in registration process
  • Install in \Shopware\Plugins\Community\Frontend\DoubleOptInRegistration\
  • For 3.5.4 Users - Remove existing Hook Files (sAdmin*) in \Shopware\Proxies before Install
  • @author Stefan Hamann
    */

class Shopware_Plugins_Frontend_DoubleOptInRegistration_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
public function install(){
$hook = $this->createHook( ‘sAdmin’, ‘sUpdateNewsletter’, ‘onSaveRegisterNewsletter’, Enlight_Hook_HookHandler::TypeReplace, 0 ); $this->subscribeHook($hook); return true; } public static function onSaveRegisterNewsletter(Enlight_Hook_HookArgs $args) { $parameters = $args->getArgs(); $status = $parameters[0]; // Status 0 = Removement / 1 = Insert $email = $parameters[1]; // eMailaddress $isCustomer = $parameters[2]; // isCustomer ? if ($status == false){ $deleteAndReturn = Shopware()->Db()->query(" DELETE FROM s_campaigns_mailaddresses WHERE email = ? “,array($email)); return; } $checkDuplicate = Shopware()->Db()->fetchOne(” SELECT id FROM s_campaigns_mailaddresses WHERE email=?",array($email)); if (empty($checkDuplicate[“id”])){ $template = Shopware()->Config()->Templates->sOPTINNEWSLETTER; $hash = md5(uniqid(rand())); $temporaryArray = array(“newsletter”=>$email,“subscribeToNewsletter”=>true); $data = serialize($temporaryArray); $link = Shopware()->Front()->Router()->assemble(array(‘sViewport’=>‘newsletter’,‘action’=>‘confirm’,‘sConfirmation’=>$hash)); Shopware()->Plugins()->Frontend()->DoubleOptInRegistration()->sendMail($email,$template,$link); Shopware()->Db()->query(" INSERT INTO s_core_optin (datum,hash,data) VALUES ( now(),?,? ) “,array($hash,$data)); } } public function sendMail($recipient, $template, $optin=false) { $mail = clone Shopware()->Mail(); $mail->From = $template[‘frommail’]; $mail->FromName = $template[‘fromname’]; $mail->Subject = $template[‘subject’]; if (!empty($template[‘ishtml’])) { $mail->IsHTML(1); $mail->Body = $template[‘contentHTML’]; $mail->AltBody = $template[‘content’]; } else { $mail->IsHTML(0); $mail->Body = $template[‘content’]; } $mail->Body = str_replace(”{sMAIL}",$email,$mail->Body); if (!empty($optin)){ $mail->Body = str_replace(’{$sConfirmLink}’, $optin, $mail->Body); } foreach (Shopware()->System()->_POST as $key => $value) { $mail->Subject = str_replace(’{$sUser.’.$key.’}’, $value, $mail->Subject); $mail->Body = str_replace(’{$sUser.’.$key.’}’, $value, $mail->Body); $mail->AltBody = str_replace(’{$sUser.’.$key.’}’, $value, $mail->AltBody); } $mail->ClearAddresses(); $mail->AddAddress($recipient, “”); $mail->Send(); } public function getName(){ return “Double Opt-in in Registrierungsprozess”; } } ?> [/code]