Contao-Camp 2024
Ergebnis 1 bis 24 von 24

Thema: Newsletter abonieren + Double Opt-in in Isotope möglich

  1. #1
    Contao-Nutzer
    Registriert seit
    18.03.2011.
    Beiträge
    2

    Standard Newsletter abonieren + Double Opt-in in Isotope möglich

    Hallo,

    oftmals sieht man in einem Shop im Laufe des Bezahlvorgangs eine Checkbox, die man aktivieren soll wenn man einen Newsletter abonieren möchte. Ist sowas bei Isotope in Verbindung mit Double Opt-in dabei (wird eventuell direkt der Standard Contao Newsletter benutzt?), oder nachinstallierbar?

    Gruß
    Wolfgang

  2. #2
    Contao-Urgestein Avatar von ways2web
    Registriert seit
    23.03.2010.
    Ort
    Berlin
    Beiträge
    1.698
    User beschenken
    Wunschliste

    Standard

    der contao newsletter bringt das double opt in doch gleich von haus aus mit oder irre ich da?

    gruss
    ways

  3. #3
    Contao-Nutzer
    Registriert seit
    18.03.2011.
    Beiträge
    2

    Standard

    Ja, deshalb wüsste ich gerne ob man von Isotope per Checkbox den Contao-Newsletter nutzen kann. Normalerweise muss man zum abonieren ja seine Email in ein Inputfeld eintragen.

    Habe mir jetzt erstmal ein Modul geschrieben welches per Isotope Hook "postCheckout" den Contao Newsletter nutzt. War aber wahrscheinlich unnötig da es mich nicht wundern würde wenn Isotope sowas direkt mitbringt und ich nur zu blöd war es zu finden.

  4. #4
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Nein das ist aktuell noch nicht enthalten. postCheckout ist genau das richtige dafür.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  5. #5
    Contao-Fan
    Registriert seit
    27.11.2009.
    Beiträge
    326

    Standard

    Hallo,
    ich versuche gerade dasselbe, aber komme damit leider so gar nicht klar.

    Ich hänge dabei bereits beim Hook: wie genau greife ich auf die Daten in dem Hook zu? Also wo ist was drin?
    dass ich hier:
    PHP-Code:
    $this->$callback[0]->$callback[1]($this$arrItemIds$arrData); 
    Näheres finden soll, weiß ich schon, aber es hilft mir leider nicht wirklich.

    Ich brauche die Info, ob meine Newsletter checkbox angekreuzt wurde oder nicht. Sind die POST-Werte überhaupt in $this oder $arrData enthalten? Ich fürchte, nicht?!

    Danke für alle Tipps - bzw. gibt es nicht vielleicht doch irgendwo ein komplettes Beispiel für diesen Hook?!?

    Und nochwas: wenn ich meine Checkbox über Isotope (im Kassenmodul) als Formular einbinde, könnte ich dann ggf. auch den processFormData-Hook verwenden?
    [EDIT: nein - in dem Formular wird nur auf Plichtfelder geprüft]

    Gruß!
    Geändert von tlnewbie (20.09.2012 um 18:38 Uhr)

  6. #6
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wo ist denn dieses Newsletter-Feld vorhanden? Hast du das in der tl_iso_addresses angelegt?
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  7. #7
    Contao-Fan
    Registriert seit
    27.11.2009.
    Beiträge
    326

    Standard

    Hallo Andreas,
    Ich hatte das eigentlich auf der Bestellübersicht vorgesehen & wollte dann den post abfragen, aber den gibt es dann wohl nicht mehr als Info.

    EDIT: mal sehen, wie weit ich mit dem Addressfeld komme,
    danke!
    Geändert von tlnewbie (24.09.2012 um 11:19 Uhr)

  8. #8
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich finde das besser im Formular auf der Bestätigungsseite. Zumindest in der Email müsste das als ##form_feldname## verfügbar sein, und irgendwo auch in $_SESSION['CHECKOUT_DATA'];
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  9. #9
    Contao-Fan
    Registriert seit
    27.11.2009.
    Beiträge
    326

    Standard

    Hallo nochmal,
    gut, dann prüfe ich mal die SESSION!
    Wäre mir auch lieber so!
    Gruß & vielen Dank für Deine vielen Infos hier (auch allgemein).

  10. #10
    Contao-Nutzer Avatar von janosch
    Registriert seit
    06.07.2009.
    Ort
    Wien
    Beiträge
    82

    Standard

    Hallo Leute!

    Ich habe mich nun auch damit beschäftigt, eine Newsletteranmelung aus Isotope zu realisieren.

    Ich verwende dazu den postCheckout Hook um zu überprüfen, ob die Checkbox zur Newsletteranmeldung aktiviert ist und falls dies der Fall sein sollte, rufe ich die Seite zur Newsletteranmeldung, mit der übergebenen eMail-Adresse, auf. Das funktioniert soweit auch ganz gut, d.h. die eMail-Adresse wird in den Verteiler eingetragen und es wird eine Aktivierungsmail versandt.

    PHP-Code:
    class Isotopenewsletter extends Frontend
    {
      public function 
    postCheckout($test$arrItemIds$arrData)
        {
            if(
    $arrData['billing_newsletter'] == "ja"//Checkbox für Newsletter aktiviert?
            
    {
                
    $PostData = array('email'=>$arrData['billing_email'], 'FORM_SUBMIT'=>'tl_subscribe','channels[]'=>'2');
                
    $Post http_build_query($PostData);

                
    $ch curl_init("http://{$_SERVER['HTTP_HOST']}/newsletter_automatisch.html");//URL zum Newsletteranmeldeformular
                
    curl_setopt ($chCURLOPT_HEADER);
                
    curl_setopt ($chCURLOPT_REFERER"http://{$_SERVER['HTTP_HOST']}");
                
    curl_setopt ($chCURLOPT_POSTFIELDS$Post);
                
    curl_setopt ($ch,CURLOPT_POST,TRUE);
                
    curl_setopt ($ch,CURLOPT_HTTPGET,FALSE);
                
    $data curl_exec$ch );
                
    curl_close ($ch);
            }
        }

    Das Problem jedoch ist, dass nachdem ich auf "Bestellen" drücke, der Hook ausgeführt wird und dann auf einer leeren, weißen Seite mit der URL (../kassa/step/complete.html) stehen bleibt.

    Wie schaffe ich es, dass ich nach dem Aufruf des Hooks wieder auf die "Vielen Dank für Ihre Bestellung" Seite weitergeleitet werde?

    LG
    Janosch
    Why is 6 afraid of 7? Because 7 8 9.

  11. #11
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von janosch Beitrag anzeigen
    Das Problem jedoch ist, dass nachdem ich auf "Bestellen" drücke, der Hook ausgeführt wird und dann auf einer leeren, weißen Seite mit der URL (../kassa/step/complete.html) stehen bleibt.
    Das passiert meistens wenn du in einer PHP-Datei eine ungewollte Ausgabe hast (Leerzeichen, oder ev. das UTF8-BOM?).
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  12. #12
    Contao-Nutzer Avatar von janosch
    Registriert seit
    06.07.2009.
    Ort
    Wien
    Beiträge
    82

    Standard

    Zitat Zitat von andreas.schempp Beitrag anzeigen
    Das passiert meistens wenn du in einer PHP-Datei eine ungewollte Ausgabe hast (Leerzeichen, oder ev. das UTF8-BOM?).
    DANKE Andreas!!

    Es war tatsächlich ein Leerzeichen am Ende der Datei... War schon am verzweifelen!
    Why is 6 afraid of 7? Because 7 8 9.

  13. #13
    Contao-Nutzer Avatar von janosch
    Registriert seit
    06.07.2009.
    Ort
    Wien
    Beiträge
    82

    Standard HOOK postCheckout bei PayPal nicht möglich?

    Die Newsletteranmeldung funktioniert bei Zahlung per Vorkassa wunderbar.

    Wenn man jedoch via PayPal zahlt, wird der postCheckout Hook gar nicht ausgeführt?! Woran kann das liegen?
    Why is 6 afraid of 7? Because 7 8 9.

  14. #14
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Der Hook wird ausgeführt, wenn die Bestellung abgeschlossen wird. Scheint als würde deine PayPal-Bestellung nicht abgeschlossen (z.B. wegen fehlendem IPN).
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  15. #15
    Contao-Nutzer Avatar von janosch
    Registriert seit
    06.07.2009.
    Ort
    Wien
    Beiträge
    82

    Standard

    Danke Andreas für deine, wie immer, schnelle Antwort!

    Ich hatte zwar IPN nicht aktiviert, der Bestellvorgang an sich wurde interessanterweise jedoch immer korrekt ausgeführt. Hab jetzt IPN aktiviert, dabei ändert sich aber nichts. Der Bestellvorgang läuft sauber durch, Zahlungseingang bei PayPal passt, eMails gehen alle raus, nur die Newsletteranmeldung funktioniert nicht.

    In den log-Dateien ist auch alles in Ordnung.

    Die Newsletteranmeldung erfolgt mittels postCheckout-Hook, indem das Formular zum Newsletter abonnieren aufgerufen, mit der eMail-Adresse befüllt und abgeschickt wird.

    Ich bin ratlos...
    Why is 6 afraid of 7? Because 7 8 9.

  16. #16
    Contao-Nutzer Avatar von krischanski
    Registriert seit
    11.04.2013.
    Ort
    Berlin
    Beiträge
    30

    Standard

    Wollte das gerade nachbauen, erziele aber leider keinen Erfolg. Hat das vielleicht mit dem Request-Token zu tun, der ja (neuerdings?) auch noch in das Abo-Formular muss?

  17. #17
    Contao-Nutzer Avatar von krischanski
    Registriert seit
    11.04.2013.
    Ort
    Berlin
    Beiträge
    30

    Standard

    Die Parameter des Hooks haben sich in der Zwischenzeit geändert, und jetzt gibts neben dem Order-Objekt nur noch die $arrTokens, in denen man die billing_email genauso findet wie im $arrData.

  18. #18
    Contao-Nutzer
    Registriert seit
    08.11.2009.
    Beiträge
    191

    Standard

    Hallo,

    konntest du die Newsletter-Anmelde-Funktion in den Isotope Bestellprozess einbinden?
    Wenn ja, vielleicht kannst du mir nochmal genau erklären wie?

    Danke, Gruß

  19. #19
    Contao-Nutzer Avatar von krischanski
    Registriert seit
    11.04.2013.
    Ort
    Berlin
    Beiträge
    30

    Standard

    Naja, nach einigem Herumprobieren mit Curl, das aber wegen der Request-Tokens (glaub ich jedenfalls) nicht mehr funktioniert, hab ich jetzt doch eine Variante gefunden, die Teile der Funktion addRecipient aus der Klasse ModuleSubscribe nachahmt, dabei aber direkt in der Datenbank herumliest und -schreibt.

    PHP-Code:
        public function subscribeNewsletter($objOrder$arrTokens) {
            if(
    $arrTokens['form_newsletter'] == "OK") { //form_ vor dem Namen der Checkbox
                
    $email $arrTokens['billing_email'];
                
    //email noch nicht drin?
                
    $recipients $this->Database->prepare("Select * from tl_newsletter_recipients where email=?")->execute($email);
                if (
    $recipients->numRows == 0) {
                    
    $channel 1//id des Newsletters hartgekodet, weil es nur den einen gibt
                    
    $time time();
                    
    $token md5(uniqid(mt_rand(), true));
                    
    //in die Datenbank
                    
    $this->Database->prepare("Insert into tl_newsletter_recipients set pid=?, tstamp=?, email=?, addedOn=?, token=?")->execute($channel$time$email$time$token); 
                    
    //opt-in-Mail schicken
                    
    $text $this->Database->prepare("Select nl_subscribe from tl_module where nl_subscribe is not null")->execute()->nl_subscribe//hier hole ich den im Modul gespeicherten E-Mail-Text //TODO: bei Mehrsprachigkeit richtiges Modul raussuchen
                    
    $mailData = array();
                    
    $mailData['token'] = $token;
                    
    $mailData['domain'] = \Idna::decode(\Environment::get('host'));
                    
    $mailData['link'] = \Idna::decode(\Environment::get('base')) . 'de/newsletter-abonnieren' . (\Config::get('disableAlias') !== false '&' '?') . 'token=' $token//Name der Abo-Seite hartgekodet //TODO: Mehrsprachigkeit
                    
    $mailData['channel'] = $mailData['channels'] = "Newsletter"//Name des Channels hartgekodet, s.o.
                    
    $mail = new Email();
                    
    $mail->from $GLOBAlS['TL_ADMIN_EMAIL'];
                    
    $mail->fromName $GLOBALS['TL_ADMIN_NAME'];
                    
    $mail->subject sprintf($GLOBALS['TL_LANG']['MSC']['nl_subject'], \Idna::decode(\Environment::get('host')));
                    
    $mail->text = \StringUtil::parseSimpleTokens($text$mailData);
                    
    $mail->sendTo($email);
                }
            }    
            return 
    true;
        } 
    Funktioniert soweit erstmal.

  20. #20
    Contao-Nutzer
    Registriert seit
    16.09.2014.
    Beiträge
    26

    Standard

    Hallo Leute,

    wir sind hier auch an einer Lösung interessiert. Da der Beitrag nun etwas älter ist, gibt es jemanden, der das momentan benutzt? Newsletteranmeldung aus dem Isotope Checkoutbereich (Bestellübersicht).

    Contao Version 3.5.31
    Isotope 2.4.0

  21. #21
    Contao-Nutzer
    Registriert seit
    08.11.2009.
    Beiträge
    191

    Standard

    Hallo,

    würde mich auch interessieren ob das schon jemand umgesetzt hat.
    Eingesetzt wird bei mir C4.4

  22. #22

  23. #23
    Contao-Nutzer Avatar von Dillinja
    Registriert seit
    13.07.2009.
    Ort
    Dresden
    Beiträge
    111

    Standard

    Hallo Zonky,

    vielen Dank für den Hinweis auf diese Erweiterung.

    Zitat Zitat von zonky Beitrag anzeigen
    Leider tut sich bei einer Bestellung nichts.

    Ich verwende Contao 4.4, sowie Isotope 2.7.0

    Ich habe das Widget sowie ein Textfeld für die E-Mail-Adresse in das Bestellbedinungsformular eingebaut. Im Widget habe ich das Textfeld ausgewählt und das Häkchen für eine separate E-Mail gesetzt.

    Ich bekomme keine Mails und die Adresse wird auch nicht in den Verteiler eingetragen - auch bekomme ich keine Fehler - auch nicht in den Logs.

    Baue ich aber ein ganz normales Formular, funktioniert das alles wie gewünscht.

    Ich werde es nun einfach auf die Bestellbestätigungsseite setzen. Da kann ich aber auch die normale Newsletterameldung nehmen. :-)

    Viele Grüße
    Micha

  24. #24
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.713
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Dillinja Beitrag anzeigen
    Baue ich aber ein ganz normales Formular, funktioniert das alles wie gewünscht.
    hmm... anders habe ich das auch noch nie getestet - kannst Du debuggen, wo die Erweiterung aussteigt bzw. nichts macht?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •