Wenn man in PrestaShop eigene Templates baut, oder bestehenden PrestaShop Templates modifiziert, fehlt oft eine entscheidende Funktion: Die Kundengruppe des aktuellen Besuchers zu ermitteln um entsprechende Teile des Layouts ein oder auszublenden. Dieser Beitrag zeigt, wie sich die Funktion mit wenigen Zeilen Code als Smarty Plugin nachrüsten lässt.
Abfrage der Kundengruppe als Smarty Plugin in PrestaShop
Dazu schreiben wir den folgenden Code in die Datei tools/smarty/plugins/function_customer_group.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php // Smarty Plugin MOD.hs // // customer_group 1.00 // // Returns the current customer's group number. // // CALL: // {customer_group} // // (c)2017 Harald Schneider // // function smarty_function_customer_group($params, Smarty_Internal_Template $template) { $context = Context::getContext(); return($context->customer->id_default_group); } |
Die Funktion gibt die ID der Kundengruppe des aktuellen Besuchers in PrestaShop zurück:
- 1 = Besucher
- 2 = Gast
- 3 = Kunde
- 4 = z.B. Reseller (selbst definiert)
Im PrestaShop Template selbst erfolgt dann der Aufruf z.B. wie folgt:
1 2 3 4 5 6 |
{$grp={customer_group}} {if $grp == 4} <div class="reseller-only"> ..... </div> {/if} |
Das gleiche Prinzip lässt sich auf beliebig weitere interne PrestaShop-Variablen anwenden, um sie per Smarty in der Template-Programmierung zugänglich zu machen.