SuperMailer Script im osCommerce Shop: Probleme mit Antworts

Fragen und Tipps & Tricks zur Newsletter Software SuperMailer oder zum BirthdayMailer

Moderatoren: mirko, Wolfi

Antworten
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Na da wo header(\"Location... steht, muss der Funktionsaufruf ShowPage(....) natürlich rein.
Joel81
Beiträge: 6
Registriert: 15.03.2009, 09:25

Beitrag von Joel81 »

Hallo Mirko,

bei mir scheint es im Script ein wenig anders auszusehen?
Hab nicht diebesagt stelle im code gefunden:

Code: Alles auswählen

header("Location: $SubscribeOKPage");
sondern nur das hier:

Code: Alles auswählen

if( $ActionSave == "confirmation" && $SubscribeOKPage == $OutputText ) {
   header("Location: $OutputText");
   exit;
}

if( $ActionSave == "unsubscribe" && $UnsubscribeOKPage == $OutputText ) {
   header("Location: $OutputText");
   exit;
}
Die Variable $OutputText hab ich weiter iben ja definiert. Soweit ja auch ganz klar. Nur wie setze ich Deine erweiterung hier ein?
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Man kann selbst beliebige Parameter hinzufügen, die Reihenfolge spielt damit keine Rolle.
Joel81
Beiträge: 6
Registriert: 15.03.2009, 09:25

Beitrag von Joel81 »

also:

ShowPage($SubscribeOKPage, $EMail, $EMail_1, $EMail_2);

Ist die Reihenfolge der Ausgabe bzw. der schreibweise hier oben egal?
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Ja das geht ganz genauso wie mit der E-Mail-Adresse.
Joel81
Beiträge: 6
Registriert: 15.03.2009, 09:25

Beitrag von Joel81 »

Hallo Mirko,

hab ich durch die unten genannte Erweiterung auch die Möglichkeit noch andere Variablen zu übergeben wie beispielsweise der Name?

Danke und Gruß
Original von Mirko:

Nehmen wir mal als Beispiel die Fehlerseite, Variable $SubscribeOKPage.

Du suchst im Quelltext des Scripts nach

header(\"Location: $SubscribeOKPage\");

und ersetzt es durch (Groß-/Kleinschreibung immer beachten!)

ShowPage($SubscribeOKPage, $EMail);

und nun die Funktion ShowPage implementieren, dazu am Ende des Scripts vor ?> diesen Code einfügen:

Code: Alles auswählen

  function ShowPage($page, $EMail) {
    $s = join("", file($page));
    $s = str_replace("[EMail]", $EMail, $s);
    print $s;
 }
Jetzt noch die angegebene HTML-Datei oben bei $SubscribeOKPage=\"seite\"; modifzieren und den Platzhalter [EMail] hinschreiben.

Führt man das aus und klickt auf den Bestätigungs-Link in der E-Mail, dann wird die E-Mail-Adresse angezeigt. Das gleiche kannst du danach mit $ConfirmationMailSendOKPage und $UnsubscribeOKPage auch nicht machen, dabei nicht vergessen in den jeweiligen Seiten ebenfalls den Platzhalter [EMail] reinzuschreiben.

Joel81
Beiträge: 6
Registriert: 15.03.2009, 09:25

Beitrag von Joel81 »

Hallo,

hab mich selbst eben grad mit der ganzen Geschichte auseinander gesetzt. Für mein Thema leider nix gefunden aber denke ich kann Dir weiterhelfen. ;-)

In Deinem Shop darfst du die An- und Abmeldung zum Newsletter nur über die Box erlauben. Auf der Kundenebene solltest das deaktivieren.
Die Antwortseite, die Du hinterlegst wird aufgerufen, wenn der Kunde den Link in der Email anklickt oder im Newsletter auf abmelden klickt.

Bei mir funktioniert es einwandfrei wenn der Kunde sich zum Newsletter anmeldet - Warenkorb bleibt erhalten und wenn die Session-ID erst mal weg ist. Probiere es mal und klick danach irgendwo in Deinen Shop. Der Warenkorb ist nicht gelöscht

Für mich wäre es schön, wenn eine Anmeldeseite als Contrib zu finden wäre, die genau die Anmeldeemail generiert die Supermailer benötigt. Dann kannst die Felder bei einem angemeldeten Kunden im Shop vorausfüllen und bei einem Interessenten/in müssen die Felder manuell ausgefüllt werden - angeleht vielleicht an der Kontaktseite für die es genauso ein Contrib gibt.
peter ratlos
Beiträge: 4
Registriert: 28.02.2008, 08:35

Beitrag von peter ratlos »

Diese Links sehen z.B. so aus:
<a>\' . BOX_INFORMATION_IMPRESSUM . \'</a>

Werde es mal im osCommerce Forum versuchen...
Trotzdem vielen Dank für die schnellen Antworten.

Peter
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

dazu kann ich nichts sagen, mit dem Shop kenne ich mich absolut nicht aus. tep_href_link ist irgendeine Variable oder Funktion des Shops, zumindest keine PHP-Funktion.
peter ratlos
Beiträge: 4
Registriert: 28.02.2008, 08:35

Beitrag von peter ratlos »

Hallo Mirko,

na das geht ja hier wie das Brezelbacken.. :i_respekt:
Das habe ich aber alles schon durchprobiert, funktioniert trotzdem nicht...
Habe mich auch schon durch das osCommerce-Forum gequält.
Wenn ich das dort richtig verstanden habe muss in der \"newsletter.php\" u.a. der Link \"$ConfirmationMailSendOKPage=\"http://www.xxx.de ein \"interner\" Link sein mit \"tep_href_link\", oder ist das Unsinn?
Habe ich auch schon ein wenig dran rumgebastelt, klappt aber nicht...

Peter
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Die Seite mit dem Anmeldeformular muss eine PHP-Seite sein. Ist das eine eigene Seite, dann müsste du ein paar Scripte vom OSCommerce mal anschauen, in den Scripten müsste oben per include(), required() oder required_once() ein Script angegegeben sein, welches für das Sessionhandling vom OSCommerce zuständig ist, das muss ebenfalls in die Seite mit dem Anmeldeformular und ins Script newsletter.php oben mit aufgenommen werden.
peter ratlos
Beiträge: 4
Registriert: 28.02.2008, 08:35

Beitrag von peter ratlos »

Hallo Mirko,

prima! Vielen Dank!
Da wäre ich natürlich nie drauf gekommen...

Die Texte (z.B. \"<b>Ihnen wurde eine E-Mail an die E-Mail-Adresse $EMail... ) wurden trotzdem nicht übernommen.
Habe diese jetzt in die jeweiligen php-Seiten geschrieben und die Emailadresse mit [EMail] eingefügt.
So funktioniert es...

Das Problem ist jetzt dass die \"Session-IDs\" aus dem osCommerce Shop nicht übernommen werden. D.h., die Kunden die eingeloggt sind fliegen raus das was evtl. im Warenkorb war ist weg.
Aber das ist wohl eine andere Baustelle...

Nochmal vielen Dank!

Peter
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Hallo Peter,

so einfach ist das nicht. Du musst das Script ändern, so dass nicht mehr per header(\"Location: <seitename>\"); auf eine andere Seite verwiesen wird. Du musst jede Seite laden und dann Ersetzungen machen.

Nehmen wir mal als Beispiel die Fehlerseite, Variable $SubscribeOKPage.

Du suchst im Quelltext des Scripts nach

header(\"Location: $SubscribeOKPage\");

und ersetzt es durch (Groß-/Kleinschreibung immer beachten!)

ShowPage($SubscribeOKPage, $EMail);

und nun die Funktion ShowPage implementieren, dazu am Ende des Scripts vor ?> diesen Code einfügen:

Code: Alles auswählen

  function ShowPage($page, $EMail) {
    $s = join("", file($page));
    $s = str_replace("[EMail]", $EMail, $s);
    print $s;
 }
Jetzt noch die angegebene HTML-Datei oben bei $SubscribeOKPage=\"seite\"; modifzieren und den Platzhalter [EMail] hinschreiben.

Führt man das aus und klickt auf den Bestätigungs-Link in der E-Mail, dann wird die E-Mail-Adresse angezeigt. Das gleiche kannst du danach mit $ConfirmationMailSendOKPage und $UnsubscribeOKPage auch nicht machen, dabei nicht vergessen in den jeweiligen Seiten ebenfalls den Platzhalter [EMail] reinzuschreiben.
peter ratlos
Beiträge: 4
Registriert: 28.02.2008, 08:35

Beitrag von peter ratlos »

Hallo,

ich habe das Script jetzt schon mehrfach generiert, installiert, die html-Antwortseiten (bzw. in diesem Fall php-Antwortseiten) angelegt und es funktioniert eigentlich alles ganz prima.
Was ich aber einfach nicht hinbekomme:
was muß wo auf der Antwortseite stehen dass da z.B. \"<b>Ihnen wurde eine E-Mail an die E-Mail-Adresse $EMail mit einem Bestätigungslink zur Aufnahme in unseren Newsletter gesendet.<br>Bitte klicken Sie in dieser E-Mail auf den Bestätigungslink, damit Ihre E-Mail-Adresse in unseren Newsletter aufgenommen wird.</b>\" angezeigt wird?
Bzw. auf der \"Fehler\"-Seite dass da die Fehlermeldungen auch erscheinen usw.?
Habe jetzt das Forum schon mehrfach rauf und runter durchsucht und viele Lösungsansätze durchprobiert, aber ich bekomme es einfach nicht gebacken...
Wahrscheinlich ist es total easy aber ich komme einfach nicht drauf.
Würde mich über Tipps sehr freuen!
Vielen Dank im voraus...
Peter
Antworten