Bonjour @elodie_33,
Le problème que tu rencontres est très courant et @camille_lab94 et @louisweb ont mis le doigt dessus. La validation des champs comme la date de naissance ou le titre de civilité se fait en deux temps : d'abord la configuration dans le Back Office, puis l'affichage dans le template.
Voici la démarche à suivre pour PrestaShop 8.2.5 :
Désactiver l'obligation des champs dans le Back Office :
- Va dans
Paramètres de la boutique > Clients > Clients.
- Cherche l'option
Date de naissance et mets-la sur Non.
- Fais de même pour
Titre de civilité et mets-le sur Non.
- Ces actions indiquent à PrestaShop que ces champs ne sont plus obligatoires pour la validation côté serveur.
Masquer les champs dans le template :
Maintenant que les champs ne sont plus obligatoires, tu peux les masquer dans le fichier _partials/customer-form.tpl de ton thème enfant (pour ne pas perdre tes modifications lors d'une mise à jour). Tu peux utiliser une condition Smarty dans la boucle qui génère les champs :
{foreach from=$formFields item="field"}
{if in_array($field.name, ['id_gender', 'birthday', 'optin'])}
{* Ces champs sont volontairement masqués car non requis ou indésirables. *}
{* Assurez-vous d'abord de les désactiver dans le BO pour 'id_gender' et 'birthday'. *}
{else}
<div class="form-group row">
<label class="col-md-3 form-control-label{if $field.required} required{/if}">
{if $field.required}<sup>*</sup>{/if} {$field.label}
</label>
<div class="col-md-6">
Ce code va itérer sur tous les champs du formulaire. Si le nom du champ ($field.name) est id_gender (titre de civilité), birthday (date de naissance) ou optin (offres partenaires), il ne sera simplement pas affiché. Dans les autres cas, le champ sera rendu normalement.
Assure-toi bien d'avoir désactivé les options dans le BO pour id_gender et birthday avant de tester, sinon le formulaire échouera toujours à la validation.