Jump to content

Recommended Posts

Posted (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 by Andi111 (see edit history)

Share this post


Link to post
Share on other sites
Posted (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 by PatStevens (see edit history)

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites
Posted (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 by PatStevens (see edit history)
  • Thanks 1

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

..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.
 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More