Hola @joaquin24,
Efectivamente, tus intentos de comentar el código fallan porque la validación de PrestaShop (especialmente en 1.7.8.7, que es una versión muy común) ocurre a nivel de PHP en el controlador AuthController y en la clase Customer. Simplemente ocultar el campo en el template no evita que el backend espere esos datos si están configurados como obligatorios o habilitados.
Para resolver esto de forma limpia, debes combinar la configuración del Back Office con una pequeña modificación en tu template _partials/customer-form.tpl (idealmente en un tema hijo para no perder los cambios en futuras actualizaciones).
Para la Fecha de nacimiento y Tratamiento (Sr./Sra.):
Ve a Parámetros de la tienda > Clientes en tu Back Office.
- Para la fecha de nacimiento, busca la opción "Activar fecha de nacimiento" y desactívala si no la necesitas. Esto hará que el campo no sea obligatorio.
- Para el tratamiento (Sr./Sra.), ve a Internacional > Títulos. Si no necesitas los títulos sociales, simplemente elimina todos los títulos de la lista. Si la lista está vacía, PrestaShop no mostrará el selector en el formulario.
Para la casilla de "Recibir ofertas de nuestros socios":
Esta opción está vinculada al módulo de newsletter y al campo newsletter del cliente. Si no quieres que aparezca, lo más directo es editar el template _partials/customer-form.tpl.
Aquí tienes el snippet modificado para el archivo themes/classic-child/_partials/customer-form.tpl (o el de tu tema, si no usas un tema hijo). Fíjate en la condición if $field.name != 'birthday' para la fecha de nacimiento y la eliminación del bloque de newsletter:
{foreach from=$formFields as $field}
{assign var="current_field_name" value=$field.name}
{* Ocultar el campo de ID de género si no hay títulos sociales configurados *}
{if $current_field_name == 'id_gender' && !count($formFields.id_gender.type)}
{* No renderizar el campo de género si no hay títulos *}
{elseif $current_field_name == 'birthday' && !Configuration::get('PS_CUSTOMER_BIRTHDATE')}
{* No renderizar el campo de fecha de nacimiento si está desactivado en el BO *}
{elseif $current_field_name == 'newsletter'}
{* No renderizar el campo de newsletter (ofertas de socios) *}
{else}
Este código utiliza Configuration::get('PS_CUSTOMER_BIRTHDATE') para comprobar si la fecha de nacimiento está activada en el Back Office. Si no lo está, no renderiza el campo. Para los títulos sociales, si no hay ninguno configurado en el BO, $formFields.id_gender.type estará vacío y el count será 0, lo que evitará que se renderice. La casilla de newsletter la eliminamos directamente del bucle.
Asegúrate de haber creado un tema hijo para aplicar estas modificaciones y así mantener tu instalación limpia y actualizable.