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.