Andi111 Posted April 6, 2020 Share Posted April 6, 2020 (edited) Hallo zusammen, kann mir von euch bitte jemand erklären wie man das Geburtsdatum im PrestaShop 1.7 als Pflichtfeld macht? Ich habe mir die Anleitung unter folgendem Link schon angeschaut, funktioniert aber leider nicht (mehr). So wie es eleazar beschrieben hat habe ich es versucht. Aber ab dem Punkt "controllers\front\AuthController.php" komme ich nicht mehr weiter, da ich den Eintrag "$customer = new Customer();" in der Datei "AuthController.php" nicht finde. Kann mir bitte jemand von euch weiter helfen? Edit: Wichtig ist auch dass es für Gastbestellungen und auch für Kontoerstellungen als Pflichtfeld dargestellt wird. Edited April 6, 2020 by Andi111 (see edit history) Link to comment Share on other sites More sharing options...
PatStevens Posted April 7, 2020 Share Posted April 7, 2020 (edited) Hallo Andi, ist jetzt nicht was du wissen willst, aber soweit ich weiß (mit meinem rechtlichen Halbwissen) ist es nicht mehr Rechtens, laut bestehenden Datenschutzrichtlinien, grundsätzlich bei jeder Bestellung das Geburtsdatum zu erheben. Da müssen triftige Gründ vorliegen (z.B. nur Artikel (Bildträger etc.) ab 18). Und dann auch nur, soweit ich weiß, in Verbindung mit Versandverfahren, die sicherstellen, dass der Artikel bei genau der Person die bestellt hat, ankommt (PostIdent etc.). Selbst, wenn man nur einige entsprechende Artikel im Shop hat, "darf" man nicht grundsätzlich bei jeder Bestellung das Geburtsdatum erheben, soweit ich weiß. Siehe Grundsatz der Datensparsamkeit und Datenvermeidung. Edited April 7, 2020 by PatStevens (see edit history) Link to comment Share on other sites More sharing options...
Andi111 Posted April 9, 2020 Author Share Posted April 9, 2020 Hallo PatStevens, wir haben zu 95% Artikel im Sortiment die ab 18 sind und die die auch unter 18 Jahren verkauft werden dürften bieten wir trotzdem nur Personen an die das 18. Lebensjahr bereits vollendet haben. Natürlich versenden wir die Pakete nur mit Altersüberprüfung durch den Paketdienst, jedoch würden wir gerne festlegen dass die Nutzer ihr Geburtsdatum bei der Registrierung bzw. auch bei einer Gastbestellung angeben müssen. In diesem Fall müsste es doch zulässig sein oder? Kann mir bitte jemand weiter helfen? Link to comment Share on other sites More sharing options...
PatStevens Posted April 10, 2020 Share Posted April 10, 2020 (edited) Der Weg von eleazar kann bei dir gar nicht funktionieren, weil dies sich auf die Version 1.6 bezieht und du die Version 1.7 hast Habe mal im Code geschaut und habe es einmal kurz getestet. Ging bei mir soweit. in classes/form/CustomerFormatter.php, Zeile 197 heisst es bei mir: if ($this->ask_for_birthdate) { $format['birthday'] = (new FormField()) ->setName('birthday') ->setType('text') ->setLabel( $this->translator->trans( 'Birthdate', [], 'Shop.Forms.Labels' ) ) ->addAvailableValue('placeholder', Tools::getDateFormat()) ->addAvailableValue( 'comment', $this->translator->trans('(E.g.: %date_format%)', array('%date_format%' => Tools::formatDateStr('31 May 1970')), 'Shop.Forms.Help') ); } wenn du dort ans Ende noch einen weiteren Methodenaufruf anhängst, also: if ($this->ask_for_birthdate) { $format['birthday'] = (new FormField()) ->setName('birthday') [...] ->addAvailableValue( 'comment', $this->translator->trans('(E.g.: %date_format%)', array('%date_format%' => Tools::formatDateStr('31 May 1970')), 'Shop.Forms.Help') ) ->setRequired(true); } ...sollte es gehen. Das Layout ("Optional" verschwindet) und die Logik (ist Pflichtfeld) folgen dann dieser Vorgabe. Da das aber eine Codeänbderung im Prestashop-Code ist, kann das bei einem Update wieder rausfliegen, nur mal so als Hinweis. Edited April 10, 2020 by PatStevens (see edit history) 1 Link to comment Share on other sites More sharing options...
Andi111 Posted April 20, 2020 Author Share Posted April 20, 2020 Hallo PatStevens, vielen vielen Dank für deine Hilfe, hat optimal funktioniert! Gibt es auch eine (einfache) Möglichkeit dass sich nur Personen ab 18 Jahren registrieren können? Also dass der Shop erkennt wenn jemand ein Geburtsdatum unter 18 Jahren eingibt und dann eine Registrierung ablehnt? Und auch bei Gastbestellungen. Link to comment Share on other sites More sharing options...
PatStevens Posted April 23, 2020 Share Posted April 23, 2020 ..vermutlich reicht es, dort ein Constraint hinzuzufügen (mit addConstraint). Das Constraint wäre dann eine Callback-Methode, die das eingegebene Datum parsed und prüft, ob es schon mindestens 18 Jahre alt ist. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now