Respuestas de foro creadas

Viendo 1 respuesta (de un total de 1)
  • Hola,
    Gracias por la respuesta, quería comentar que instalé el plugin indicado y vi que soportaba validaciones propias con las que validar el DNI.

    La documentación está aquí:
    https://docs.ultimatemember.com/article/94-apply-custom-validation-to-a-field

    De todas formas para ir al grano diré lo que hice en el plugin:
    -Editar el formulario por defecto de registro
    -Añadir un campo DNI personalizado con lo siguiente:
    Validar: Validación personalizada
    Acción personalizada: Ponemos por ejemplo: dni

    (Esto llamará a un hook llamado um_custom_field_validation_dni creado por código)

    Seguidamente nos dirigimos a la carpeta wp-content/themes/<tema usado> y editamos el fichero functions.php, y al final del archivo añadimos lo siguiente:

    /**
     * Validar campo DNI
     * @param string $key
     * @param attay  $array
     * @param array  $args
     */
    function um_custom_validate_dni($key, $array, $args){
      $letra = substr($args[$key], -1);
      $numeros = substr($args[$key], 0, -1);
      if ( isset( $args[$key]) && substr("TRWAGMYFPDXBNJZSQVHLCKE", $numeros%23, 1) == $letra && strlen($letra) == 1 && strlen ($numeros) == 8 ){
        //UM()->form()->add_error( $key, __( 'DNI VALIDO.', 'ultimate-member' ) );
      }else{
        UM()->form()->add_error( $key, __( 'DNI INCORRECTO, utilice formato: Ocho números y letra mayúscula.', 'ultimate-member' ) );
      }
    }
    add_action( 'um_custom_field_validation_dni', 'um_custom_validate_dni', 30, 3 );

    Con esto, cuando insertemos un nuevo usuario, si el DNI no es válido no dejará registrar al usuario e informará de ello. He dejado el comentario si queréis hacer pruebas. Básicamente, si llama a add_error, muestra el error y no deja validar el formulario. Si no hay nada (o está comentado), continúa.

    Un saludo

Viendo 1 respuesta (de un total de 1)