Advancedform_XH und Gutschein-Code

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
SiNiTaSa
Posts: 66
Joined: Tue Jan 03, 2017 10:33 am
Location: BW|GERMANY

Advancedform_XH und Gutschein-Code

Post by SiNiTaSa » Fri Jun 08, 2018 2:12 pm

Hallo zusammen,
habe da mal wieder eine Frage zu Advancedform_XH.

Wie stelle ich es mit Advancedform_XH an,dass in der Bestätigungsmail ein Gutschein-Code mit angezeigt wird, den er dann per Copy&Past auf einer
anderen Seite einlösen kann ?

Ich habe eine csv Datei mit 100.000 Gutschein-Codes.

Ein Gutscheincode für jede Bestätigungsmail.Die in der CSV wenn der erste den ersten Code bekommen hat dann gelöscht wird und die 2te Bestätigungsmail dann automatisch den 2ten Code erhält.

Hat mir zufällig jemand einen Ansatz oder Vorschlag wie ich das umsetzen könnte ?
aka smaxle | plugin_XH 1.7

cmb
Posts: 12663
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Advancedform_XH und Gutschein-Code

Post by cmb » Fri Jun 08, 2018 2:50 pm

SiNiTaSa wrote:
Fri Jun 08, 2018 2:12 pm
Wie stelle ich es mit Advancedform_XH an,dass in der Bestätigungsmail ein Gutschein-Code mit angezeigt wird, den er dann per Copy&Past auf einer
anderen Seite einlösen kann ?
Das Einfachste wäre ein verstecktes (hidden) Feld anzulegen, und dieses per Hook zu befüllen. Ich kann aber aus dem Kopf nicht sicher sagen, ob versteckte Felder an den Absender verschickt. Also mal ausprobieren.

Der Hook könnte dann etwa so aussehen:

Code: Select all

function advfrm_custom_field_default($form_name, $field_name, $opt, $is_resent) 
{
    if (!$is_resent && $field_name === 'Gutscheincode') {
	return uniqid(); // hier müsste der tatsächliche Code aus der DB geholt werden, etc.
    }
}
Christoph M. Becker –Plugins for CMSimple_XH, but not for CMSimple 4+

SiNiTaSa
Posts: 66
Joined: Tue Jan 03, 2017 10:33 am
Location: BW|GERMANY

Re: Advancedform_XH und Gutschein-Code

Post by SiNiTaSa » Sun Jun 10, 2018 10:20 am

Haben es hinbekommen :)
Da man keine weiteren Formulare auf der Seite brauch, wurde eine .db(sqlite3 ) erstellt und in der advfrm.php hart reingecodet.
Nun erscheint mir der Code in der Bestätigungsmail des Absenders.

Code: Select all

function Advancedform_mailInfo($id, $show_hidden, $html)
{
    global $cf, $plugin_tx, $newCode;

    $ptx = $plugin_tx['advancedform'];
    $forms = Advancedform_db();
    $form = $forms[$id];
    $o = '';
    if ($html) {
        $o .= '<div class="advfrm-mailform">' . PHP_EOL;................................usw.

Code: Select all

if ($html) {
        $o .= '<table>' . PHP_EOL;
        $o .= '<tr><td style="width: 100%;" colspan="2">Als Dankeschön erhaltet Ihr von uns einen  Rabatt-Gutscheincode.</td></tr><tr><td>Rabatt-Gutscheincode:</td>' . PHP_EOL;
        $o .= '<td>'.$newCode.'</td></tr></table>' . PHP_EOL;
    }
    return $o;
}
aka smaxle | plugin_XH 1.7

cmb
Posts: 12663
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Advancedform_XH und Gutschein-Code

Post by cmb » Sun Jun 10, 2018 10:45 am

SiNiTaSa wrote:
Sun Jun 10, 2018 10:20 am
Da man keine weiteren Formulare auf der Seite brauch, wurde eine .db erstellt und in der advfrm.php hart reingecodet.
Ist natürlich auch eine Option. :)
SiNiTaSa wrote:
Sun Jun 10, 2018 10:20 am

Code: Select all

if ($html) {
        $o .= '<table>' . PHP_EOL;
        $o .= '<tr><td style="width: 100%;" colspan="2">Als Dankeschön erhaltet Ihr von uns einen  Rabatt-Gutscheincode.</td></tr><tr><td>Rabatt-Gutscheincode:</td>' . PHP_EOL;
        $o .= '<td>'.$newCode.'</td></tr></table>' . PHP_EOL;
    }
    return $o;
}
Hm, und was ist, wenn der User nur Plain-Text-Mails empfängt? Ich selbst muss immer wieder schmunzeln, wenn ich den Newsletter eines meiner E-Mail-Provider bekomme: aufreißerischer Betreff, und eine komplett leere Message.
Christoph M. Becker –Plugins for CMSimple_XH, but not for CMSimple 4+

SiNiTaSa
Posts: 66
Joined: Tue Jan 03, 2017 10:33 am
Location: BW|GERMANY

Re: Advancedform_XH und Gutschein-Code

Post by SiNiTaSa » Sun Jun 10, 2018 1:13 pm

Danke für den Hinweis
Hm, und was ist, wenn der User nur Plain-Text-Mails empfängt? Ich selbst muss immer wieder schmunzeln, wenn ich den Newsletter eines meiner E-Mail-Provider bekomme: aufreißerischer Betreff, und eine komplett leere Message.
Wurde soeben behoben.....
Jetzt kommt der Code in html und text an.

Soweit so gut.... hat noch jemand einen Ansatz, wie ich den Code auf die Danke Seite bekommen würde ??
Im Tynmce geht ja kein php...

Mein Ansatz mit Session zu arbeiten ist fehlgeschlagen.
Wäre es eine Möglichkeit über userfuncs.php zu gehen ??
Oder einer globale Variable ??
aka smaxle | plugin_XH 1.7

cmb
Posts: 12663
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Advancedform_XH und Gutschein-Code

Post by cmb » Sun Jun 10, 2018 1:25 pm

SiNiTaSa wrote:
Sun Jun 10, 2018 1:13 pm
Soweit so gut.... hat noch jemand einen Ansatz, wie ich den Code auf die Danke Seite bekommen würde ??
Im Tynmce geht ja kein php...

Mein Ansatz mit Session zu arbeiten ist fehlgeschlagen.
Wäre es eine Möglichkeit über userfuncs.php zu gehen ??
Oder einer globale Variable ??
Zunächst einmal ist zu bedenken, dass Advancedform_XH auf die Dankseite weiterleitet. Du könntest an die URL noch einen Parameter anhängen, der auf der Dankseite ausgelesen wird. Zum Auslesen würde ich eine Funktion in userfuncs.php() definieren, und diese auf der Dankseite per Plugincall aufrufen.

Und gut aufpassen, dass es nicht passieren kann, dass du zwei (oder mehr) Usern den gleichen Gutscheincode schickst, auch wenn diese gleichzeitig das Formular versenden. Dazu bietet sich flock an.
Christoph M. Becker –Plugins for CMSimple_XH, but not for CMSimple 4+

Tata
Posts: 2717
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Advancedform_XH und Gutschein-Code

Post by Tata » Sun Jun 10, 2018 1:52 pm

Wahrscheinlich eine (blöde?) Idee.
1. Im formular ein Eingabefeld mit "Geben Sie einen temporären 6-steligen Code ein (den Code brauchen SIe nicht speichern, er wird nur für Gutscheincodeerstellung gebraucht)."
2. Eine Funktion für den eingegebenen Code Encryption ins Plugin zu geben, die aus dem temporären 6-steligen Code einen Gutscheincode generiert.
3. Den generierten Code auf die Dankeseite in Callvariable übertragen.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

knollsen
Posts: 178
Joined: Wed Nov 06, 2013 2:28 pm

Re: Advancedform_XH und Gutschein-Code

Post by knollsen » Sun Jun 10, 2018 2:35 pm

.... Du könntest an die URL noch einen Parameter anhängen, ...userfuncs.php() definieren, und diese auf der Dankseite per Plugincall aufrufen.
Auf die Idee kam ich auch, leider sieht man den Code dann in der Browserzeile. Auf Plugincall wäre ich jetzt nicht gekommen. Gute Idee (hätte sonst das im Template gemacht)
.... Dazu bietet sich flock an.
Was nicht alles gibt - nie gesehen/nie gebraucht - Das muss ich mal testen, aber wie testet man das?
2 User die gleichzeitig an unterschiedlichen Rechnern sitzen und dann den Sende Button drücken? :roll:

@Tata Ich denk mal die Gutscheicodes sind vorgegeben, da Sie ja bei jemanden Anders eingelöst werden können.

cmb
Posts: 12663
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Advancedform_XH und Gutschein-Code

Post by cmb » Sun Jun 10, 2018 3:26 pm

knollsen wrote:
Sun Jun 10, 2018 2:35 pm
.... Du könntest an die URL noch einen Parameter anhängen, […]
Auf die Idee kam ich auch, leider sieht man den Code dann in der Browserzeile.
Okay, nicht optimal, weil der User diese URL möglicherweise irgendwo anders posten könnte. Versteckt könnte man den Code in einem Cookie platzieren, aber das klappt nicht, wenn der Browser keine Cookies akzeptiert, und könnte rechtlich (DSGVO etc.) vielleicht auch wieder problematisch sein. Dann bliebe noch die Möglichkeit, den gehashten Gutscheincode in der URL zu übergeben. Das könnte dann vielleicht so ablaufen:
  • Beim Versenden der Mail wird der Gutscheincode aus der „Datenbank“ geholt.
  • Der Hash wird errechnet, und zusätzlich zum eigentlichen Code in die „Datenbank“ geschrieben. Und eben dieser Hash wird an die URL angehängt.
  • Beim Aufruf der Dankseite wird geprüft, ob der übermittelte Hash in der “Datenbank” vorkommt, und falls ja, dann wird der eigentliche Gutscheincode gelesen und angezeigt.
Als Hash-Funktion tut es vielleicht schon sha1. Stärker ist im Zweifel aber besser.
knollsen wrote:
Sun Jun 10, 2018 2:35 pm
.... Dazu bietet sich flock an.
Was nicht alles gibt - nie gesehen/nie gebraucht - Das muss ich mal testen, aber wie testet man das?
2 User die gleichzeitig an unterschiedlichen Rechnern sitzen und dann den Sende Button drücken? :roll:
Zwei verschiedene Browser sollten genügen; eigentlich tun es schon zwei verschiedene Tabs im selben Browser. Am besten baut man im Script noch ein sleep(5) o.ä. ein, damit man nicht genau gleichzeitig submitten muss, und sich ggf. sogar die Datei live anschauen kann.
Christoph M. Becker –Plugins for CMSimple_XH, but not for CMSimple 4+

knollsen
Posts: 178
Joined: Wed Nov 06, 2013 2:28 pm

Re: Advancedform_XH und Gutschein-Code

Post by knollsen » Sun Jun 10, 2018 4:09 pm

Okay, nicht optimal,
Eben deswegen auch wenn der Aufruf nur in dem Fall kommt, wenn das Formular gesendet wird. Post-Methode wäre auch eine Variante (aber auch aufwendiger). Am einfachsten wäre vielleicht doch die Get-Methode und wenn userfunc durch die Plugincall greift die Browserzeile zurück zu setzen. Ich meinte ich hätte das mal gemacht irgendwo.
Noch schöner wäre (außer XH_startSession etc.) das CMSimple ne globale Variable bietet die überall gültig wäre. (ahhh da test ich mal was)
...damit man nicht genau gleichzeitig submitten muss
Spitze! manchmal kommt man auf das Simple(ste) ;) nicht. Das muss ich mir auf jeden Fall mal anschauen.

Post Reply