WHMCS Bestellvorgang Checkbox prüfung - AGB, Widerrufsbelehrung, SLA - Hook

  • Der Standard Warenkorb von WHMCS ist ja nicht wirklich Rechtskonform.
    Wer nun schon eigene checkbox in der viewcart.tpl erstellt hat nutzt bestimmt auch ein JavaScript zu Prüfung ob der Kunde auch die Bedingungen selektiert hat.


    Ja nun ist das so eine Sache mit den JavaScipt. Mir ist es schon passiert das der Kunde JavaScript deaktiviert hat oder auch ein Modul was selbst noch einmal JavaScipt inkludiert einen Fehler wirft und somit die Prüfung nicht mehr funktioniert.


    Zusätzlich nervt es mich langsam ständig die Fehler im JavaScript zu suchen, wobei einige Modulentwickler JQuery nutzen und die anderen nicht, oder ein Template ein eigenes Script mitliefert.
    Des weiteren bin ich der Meinung das solche Eingabeprüfungen über JavaScript rechtlich abmahnfähig ist, da technisch leicht manipulierbar.


    Hierfür habe ich mir mal den Hook "ShoppingCartValidateCheckout" angeschaut.


    Im Template viewcart.tpl habe ich mir folgende checkbox Felder erstellt:

    PHP
    <label><input type="checkbox" name="accepttos" id="checkbox_toc" />{$LANG.ordertosagreement} <a href="{$tosurl}" target="_blank">{$LANG.ordertos}</a></label>
    <label><input type="checkbox" name="acceptsla" id="checkbox_sla" />{$LANG.orderslaagreement} <a href="/service/service-level-agreements.html" target="_blank">{$LANG.ordersla}</a></label>
    <label><input type="checkbox" name="acceptpp" id="checkbox_pp" />{$LANG.orderppagreement} <a href="/service/privacy-statement.html" target="_blank">{$LANG.orderpp}</a></label>
    <label><input type="checkbox" name="acceptri" id="checkbox_ri" />{$LANG.orderriagreement} <a href="/service/conditions.html" target="_blank">{$LANG.orderri}</a></label>


    Folgende Sprachdatei Einträge müsst ihr noch erstellen.
    in: /whmcs/lang/german.php
    oder: /whmcs/lang/overrides/german.php



    nun erstellen den eigentlichen hook in: /whmcs/includes/hooks/CartValidateCheckout.php


    Danach könnt Ihr das JavaScript aus dem viewcart.tpl rausschmeißen. Wenn der Kunde nun auf "Jetzt Bestellen" klick prüft nun WHMCS ob alle Felder selektiert sind. Wenn nicht kommt eine Fehlermeldung wie im Bild zu sehen.


    Bitte betrachtet die Texte und Quellcode als Beispiel und passt diese nach euren Bedürfnissen an! Verbesserungsvorschläge sind erwünscht!!!


    Viel Spaß!!


    Grüße STeaB

  • Vielen Dank fürs teilen dieser Lösung, das wollte ich auch noch Umsetzen. Danke.
    Allerdings, ich weiß nicht obs bei dir anders ist, aber auf meinem dev System musste ich deinen Hook etwas erweitern damit er überhaupt auslöst. Und zwar musste nach Zeile 24 eine Zeile mit

    PHP
    return $errors;

    eingefügt werden, da sonst keine Rückgabe des Errors erfolgt.

  • Ah sorry hatte mich auch die complete.tpl bezogen, die ist nach der Bestellung.
    Habe gerade in 6.1 geschaut, die checkout.tpl gibt es nur bei einem einzigen Cart "Standard Cart", ob man bei dem Cart die abfrage woanders machen muss weiß ich nicht. Muss man halt schauen.
    Zum Zeitpunkt an dem diese Anleitung geschrieben wurde, war halt die viewcart.tpl die einzige zuständige Datei. Wer halt nen anderen Cart nimmt muss halt selbst nachschauen.

  • Bedingt durch den Bug in den neuen Orderforms das sich Bestandskunden nicht einloggen können hab ich mir die neuen Orderforms genauer angeschaut.
    Wer eines der neuen Orderforms verwendet muss die Checkboxen in die checkout.tpl Datei einbinden. Ihr verwendet z.B. den cloud_slider und da ist keine checkout.tpl? Das Liegt daran das die neuen Orderforms alle auf dem standard_cart aufbauen (siehe theme.yaml Datei), es ist ungefähr so wie bei Wordpress und den Childthemes.
    Entweder ihr kopiert die checkout.tpl vom standard_cart template in euer Template und fügt dort die Checkboxen ein (die von WHMCS empfohlene Variante) oder Ihr fügt die checkboxen direkt im standard_cart template ein, dann erscheint diese Checkbox aber in jedem Template das dadrauf aufbaut, also in cloud_slider, Premium Comparison und Pure Comparison.

  • Hallo
    ich verzweifle noch


    bekomme das leider nicht so hin


    es erscheinen zwar ie boxen und dann wieder net


    aber diese soollten doch da stehen wo kaufen steht?
    der Kaufen button wurde zwar geändert abder dies geht auch nicht?


    hat jemand eine fertige datei wäre sehr nett?

  • Wenn du keinen Plan hast, lass es einfach bleiben. Sorry, das ist was komplett simples. Ansonsten such dir einen professionellen Dienstleister für WHMCS. Es ist nicht so, dass man Programmierer (und dann noch fertig und funktionierend) kostenlos bekommt. Du arbeitest doch auch nicht kostenlos, oder?

  • Ne da gibt es nicht zu verrutsche, das ist ein Code der eingefügt werden muss an der Stelle wo der "Normale" Text hin soll, der Fehlercode dürfte gar nicht erscheinen erst, sondern erst wenn der Haken fehlt und die Bestellung abgeschickt wird, und dann muss der 2te Text oben erst erscheinen.


    Ich denke hier wird WHMCS etwas geändert haben am Cart Verhalten...