Fecha de nacimiento, añade un selector de fecha en Prestashop

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

Una vez más aquí. En esta ocasión vamos a ver algo sobre lo que me han preguntado esta misma semana. Según parece, en las últimas versiones de Prestashop 1.7.X los usuarios se encuentran con que a la hora de registrarse en este CMS, necesitan escribir la fecha de nacimiento. Esto en versiones anteriores no era un problema, ya que Prestashop nos ofrecía unos desplegables para seleccionar la fecha de cumpleaños. Pero esto en las últimas versiones lo han cambiado por un campo de texto, y a algunos administradores no les hace gracia (por el motivo que sea).

Esto lo vamos a poder sustituir por otras opciones un poco más vistosas. Podremos cambiar este campo por unos desplegables (para año, mes y día) o un calendario en el que podemos indicar la fecha de nacimiento.

¿Dónde se puede cambiar el formato de fecha de nacimiento para el registro de usuarios en Prestashop?

Bueno, esto lo podemos cambiar con de forma sencilla en el archivo ../classes/form/CustomerFormatter.php. Dentro de este archivo solo necesitamos buscar la siguiente función. y cambiar la línea indicada:

if ($this->ask_for_birthdate) {
    $format['birthday'] = (new FormField())
        ->setName('birthday')
        ->setType('text')   //el campo text se debe cambiar por date o por birthday
        ->setLabel(
            $this->translator->trans(
                'Birthdate',
                [],
                'Shop.Forms.Labels'
            )
        )

Tengo que decir que esto yo lo he probado en Prestashop 1.7.7.3, y esta función se puede encontrar en la línea 201 del archivo, pero me imagino que en otras versiones la línea cambiará. Lo más rápido es buscar dentro del archivo «ask_for_birthdate».

El caso es que si cambiamos el campo ‘text‘ por «date«, guardamos el archivo y lo volvemos a subir al hosting, veremos lo siguiente en el campo «Fecha de nacimiento«:

En cambio, si en lugar de ‘text‘ escribes ‘birthday, guardas el archivo y lo subes a tu hosting, el resultado que veremos será el siguiente:

Personalmente a mi me gusta más la opción date, pero supongo que esto ya depende del gusto de cada cual. Tengo que reconocer que solo he probado la versión del calendatio en Prestashop 1.7.7.3, los desplegables no he tenido tiempo todavía de probarlo.

Este TIP sobre Prestashop he de decir que me lo encontré por casualidad en los foros de Prestashop.

Post relacionados

Gasoliprecio, busca las estaciones de servicio con el mejor precio

Control básico de la pila LAMP con Python y Tkinter

Recetario web, crea el tuyo y ten tus recetas de cocina a mano

2 Comentarios

Lily 19 junio, 2023 - 10:37 AM
como puedo traducir los meses o en su defecto que aparezcan como numero?
entreunosyceros 2 julio, 2023 - 2:17 AM
Prueba a buscar en acceder a la administración de PrestaShop --> Localización --> Traducción de mensajes ?
Añadir comentario