Dein Warenkorb ist leer

01.03.2012 JTL Shop

Contact Forms für Fortgeschrittene

Das Contact Forms-Plugin kann nicht nur schnöde Formulare darstellen, sondern bietet gleichzeitig auch noch weitreichende Möglichkeiten zur Integration. Dieser Beitrag zeigt dir wie das geht.

Zunächst lassen sich eigene JavaScript-Callbacks für das Absenden eines Formulars definieren, wie z.B.

$(function(){
    // pruefen, ob ContactForms-Object existiert
    if(typeof(kkContactForms) !== 'undefined'){
        //eigener Callback bei "success"
        kkContactForms.success(function(res, request){
            //hier als Beispiel nur die Formular-ID 2 beachten
            if(request && request['kk-contact-form'] && request['kk-contact-form'] == "2"){
                //nur wenn erfolgreich versendet
                if(res.status && res.status.toLowerCase() === "ok"){
                    //Google Analytics Event tracken
                    if(typeof(_gaq) !== "undefined"){
                        _gaq.push(["_trackEvent", "Category-Name", "Action-Name", "Label"]);
                    }
                    return true;
                } else {
                    console.log('Hoppla, hier ist was schief gelaufen.');
                }
            }
        });
    }
});

Dies würde erlauben, per Google Analytics das Absenden von Formularen zu tracken.

Eine weitere Möglichkeit für komplexe Vorgänge, die eine Weiterverarbeitung von Daten in PHP erfordern, wäre, ein eigenes Plugin zu schreiben, das den Hook 1111 nutzt.

Ein Minimalbeispiel wäre dazu folgende info.xml eines neuen Plugins:

<?xml version='1.0' encoding="ISO-8859-1"?>
<jtlshop3plugin>
    <name>cfHookTest</name>
    <description>Hook 1111 Test</description>
    <author>Kreativkonzentrat GbR, Felix Moche</author>
    <url>http://kreativkonzentrat.de</url>
    <xmlversion>100</xmlversion>
    <shopversion>317</shopversion>
    <pluginid>kk_cfhooktest</pluginid>
    <install>
        <version nr="100">
            <createdate>2013-11-12</createdate>
        </version>
        <hooks>
            <hook id="1111">hook_1111.php</hook>
        </hooks>
    </install>
</jtlshop3plugin>

Anschließend kann über die Variable $args_arr in der Datei frontend/hook_1111.php auf den abgesendeten Inhalt des Formulars zugegriffen werden, was z.B. folgendermaßen aussehen könnte:

array(5) {
  ["kk-contact-form"]=>
  string(1) "2"
  ["kk-ajax-uploads"]=>
  string(0) ""
  ["email"]=>
  string(16) "test@example.com"
  ["name"]=>
  string(16) "Peter Mustermann"
  ["isajax"]=>
  string(4) "true"
}

Diese Werte lassen sich nun weiterverarbeiten oder ergänzen.