Hallo,
ich habe hier mal ein paar Codeschnipsel, die abfragen, ob die vom Kunden übermittelte (und somit auch eventuell untergeschummelte) Kundengruppe von ihm selbst zugewiesen werden darf. Falls nicht, wird bei Neuregistrierung die Standard-Gruppe zugewiesen und bei Änderungen unter "Mein Konto" die zuletzt gespeicherte. Ich hoffe, dass es so funktioniert und ich nichts übersehen habe.
Das Problem betrifft auch ältere Randshop-Version, getestet habe ich das aber nur mit 2.4.
1.In
includes/functions.mod.kundengruppen.inc.php folgende Funktion irgendwo zwischen zwei anderen Funktionen einfügen, also in den Zeilen zwischen dem schließenden "}" und "function":
- Code: Alles auswählen
function GetKundengruppeWaehlbar($id) {
$SQLString = "SELECT * FROM " . TABLE_KUNDENGRUPPEN . " WHERE " . TABLE_KUNDENGRUPPEN . ".kundenauswahl = 1 AND " . TABLE_KUNDENGRUPPEN . ".id = " . $id;
$QuerryInt = mysqli_num_rows(errorlogged_mysql_query($SQLString));
return $QuerryInt;
}
Hiermit kann abgefragt werden, ob bei der betreffenden Kundengruppe im Admin das Häkchen bei "Auswahl durch den Kunden" gesetzt ist. Wenn es die Kundengruppe überhaupt nicht gibt, wird ebenfalls ein "Nein" zurückgegeben.
2.In
includes/functions.kunden.inc.php werden zwei Abfrag.n ergänzt:
2.1Im Code nach "function RegistrierungKunden" suchen und in der Zeile unmittelbar
hinter- Code: Alles auswählen
// Kundengruppe abfragen
if (!$Kundengruppe) {
$Kundengruppe = GetDefaultKundengruppe();
}
das hier einfügen:
- Code: Alles auswählen
// Prüfen, ob die übergebene Kundengruppe vom User selbst zugewiesen werden darf, ansonsten Standard-Kundengruppe
if (!GetKundengruppeWaehlbar($Kundengruppe)) {
$Kundengruppe = GetDefaultKundengruppe();
}
2.2Im Code nach "function SaveShopKundenGrunddaten" suchen und in der Zeile unmittelbar
hinter- Code: Alles auswählen
// Kundengruppe abfragen
if (!$Kundengruppe) {
$Kundengruppe = GetDefaultKundengruppe();
}
das hier einfügen:
- Code: Alles auswählen
// Wenn die übergebene Kundengruppe vom User nicht selbst gewählt werden darf und von der bisherigen abweicht
if (!GetKundengruppeWaehlbar($Kundengruppe) && $KundenObject->kundengruppe != $Kundengruppe) {
// bisherige Kundengruppe verwenden
$Kundengruppe = $KundenObject->kundengruppe;
}
Grüße
Martin