Iniciar sesión con ID para descargar PDF - ¿Cómo hacerlo?

  • Autor Autor MajesticCat
  • Fecha de inicio Fecha de inicio
MajesticCat

MajesticCat

VIP
Kappa
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Hola,

Bueno, ando buscando una forma en la cual un usuario se le de un ID, dicho ID es un numero y que con ese numero "inicie sesion" (Sin contrasena) para poder descargar un PDF que se le asignara.

Alguna idea de como hacer esto?

Saludos
 
Es muy necesario que "Inicie sesion"? Por qué no utilizar el número como validador para descargar el PDF? No se si me explico.
Podrías tener un pdf cuyo "numero asociado" sea 21321. Podes tener una Page donde realizar la descarga usando ese número. Si lo vas a hacer manual, la forma más sencilla seria agregar 2 metaboxes a un post: uno para el pdf y otro para el código. Le pasarías el post al usuario, que tendría que ingresarlo allí. Si es igual lo descarga.
 
Es muy necesario que "Inicie sesion"? Por qué no utilizar el número como validador para descargar el PDF? No se si me explico.
Podrías tener un pdf cuyo "numero asociado" sea 21321. Podes tener una Page donde realizar la descarga usando ese número. Si lo vas a hacer manual, la forma más sencilla seria agregar 2 metaboxes a un post: uno para el pdf y otro para el código. Le pasarías el post al usuario, que tendría que ingresarlo allí. Si es igual lo descarga.

Algo asi dices tu?

Custom Meta Boxes | Plugin Developer Handbook | WordPress Developer Resources
 

Exacto, dos de esos de tipo Text, en uno colocas el código y en el otro el link al PDF. Luego lo publicas y le pasas el link al user (que obviamente no tiene que poder entrar a la "edicion" de tus posts si es que tiene acceso al Admin), *loggeado o no* debe ingresar el código en el artículo (puede ser un form). Al "enviar" el código, lo único que necesitas es comparar que sea igual al que pusiste, y si pasa la validación, mostrarle el link de descarga.
Si querés "dar de baja" la descarga, podes poner un metabox más tipo checkbox para guardar si está "Disponible o No disponible", de modo que consulte por ese flag antes de devolver el enlace.
 
Exacto, dos de esos de tipo Text, en uno colocas el código y en el otro el link al PDF. Luego lo publicas y le pasas el link al user (que obviamente no tiene que poder entrar a la "edicion" de tus posts si es que tiene acceso al Admin), *loggeado o no* debe ingresar el código en el artículo (puede ser un form). Al "enviar" el código, lo único que necesitas es comparar que sea igual al que pusiste, y si pasa la validación, mostrarle el link de descarga.
Si querés "dar de baja" la descarga, podes poner un metabox más tipo checkbox para guardar si está "Disponible o No disponible", de modo que consulte por ese flag antes de devolver el enlace.

Este metodo me gusta, antes de ponerme a inventar, sabras otro metodo? Estaba pensando que a la final se registren y luego manualmente se le asigna el pdf.
 
Este metodo me gusta, antes de ponerme a inventar, sabras otro metodo? Estaba pensando que a la final se registren y luego manualmente se le asigna el pdf.

Otro método, se me ocurre usar el ID de los posts como la relacion para cada PDF, y que ese single-pdf.php te muestre contenido sólo si sos usuario loggeado. Todos los PDFs los guardas como posts con ésta característica y luego cada usuario ve el suyo. Si cada PDF es diferente para cada usuario, podes usar otro metabox para guardar ese user ID y lo controlas junto con la validación de usuario loggeado.
Es más, con ésto último, se puede crear una consulta que te traiga el PDF para cada usuario asignado, por lo que podrías usar un sólo page que funcione basado en el usuario que está en ese momento, un golazo.
 
Otro método, se me ocurre usar el ID de los posts como la relacion para cada PDF, y que ese single-pdf.php te muestre contenido sólo si sos usuario loggeado. Todos los PDFs los guardas como posts con ésta característica y luego cada usuario ve el suyo. Si cada PDF es diferente para cada usuario, podes usar otro metabox para guardar ese user ID y lo controlas junto con la validación de usuario loggeado.
Es más, con ésto último, se puede crear una consulta que te traiga el PDF para cada usuario asignado, por lo que podrías usar un sólo page que funcione basado en el usuario que está en ese momento, un golazo.

Tambien puede ser. Se me ha ocurrido lo siguiente, creo un link cualquiera y el href pongo lo siguiente:

HTML:
<?php
$user_id = get_current_user_id();

Donde el "ID" del usuario seria el numero que mencione previamente y los llevara al pdf que esta con el mismo id. Los pdf no contienen nada privado.
 
Última edición:
Tambien puede ser. Se me ha ocurrido lo siguiente, creo un link cualquiera y el href pongo lo siguiente:

HTML:
<?php
$user_id = get_current_user_id();

Donde el "ID" del usuario seria el numero que mencione previamente y los llevara al pdf que esta con el mismo id. Los pdf no contienen nada privado.

Si, también puede servir. Creo que lo importante es la relación del PDF con el código que quieras darle. Si los PDF ya están creados y dependiendo del usuario le mostras uno u otro, podes crear un custom post type PDF que tenga la url y el código, junto con un identificativo que te sirva para pasarselo al user, entonces que el mismo user al registrarse provea los datos que lo lleven al PDF correcto.
Esto ya es un poco más complejo, pero sería más "automático". Ya me estoy yendo por las ramas jaja

Tu idea sería que el permalink tenga que ID del user?
 
Si, también puede servir. Creo que lo importante es la relación del PDF con el código que quieras darle. Si los PDF ya están creados y dependiendo del usuario le mostras uno u otro, podes crear un custom post type PDF que tenga la url y el código, junto con un identificativo que te sirva para pasarselo al user, entonces que el mismo user al registrarse provea los datos que lo lleven al PDF correcto.
Esto ya es un poco más complejo, pero sería más "automático". Ya me estoy yendo por las ramas jaja

Tu idea sería que el permalink tenga que ID del user?

Si, por ejemplo soy usuario admin -> 1 . Ingreso a mi perfil y me dice "ver pdf o descargar" y el link seria

HTML:
<a href="https://dominio.com/pdf/<?php echo . $current_user->ID ; ?>.pdf">LINK</a>

El link final seria https://dominio.com/pdf/1.pdf

Lo que veo es que no esta imprimiendo el ID del usuario..
 
Si, por ejemplo soy usuario admin -> 1 . Ingreso a mi perfil y me dice "ver pdf o descargar" y el link seria

HTML:
<a rel="nofollow" href="https://dominio.com/pdf/<?php echo . $current_user->ID ; ?>.pdf">LINK</a>

El link final seria https://dominio.com/pdf/1.pdf

Lo que veo es que no esta imprimiendo el ID del usuario..

No lo imprime porque te faltó cerrar el string antes de hacer <?php... sería "...pdf/"<?php... ?>".pdf">
Esto implicaria crear y subir un PDF con el nombre específico del ID del user. Si no te molesta, funcionaría.
 
No lo imprime porque te faltó cerrar el string antes de hacer <?php... sería "...pdf/"<?php... ?>".pdf">
Esto implicaria crear y subir un PDF con el nombre específico del ID del user. Si no te molesta, funcionaría.

No molesta por que son certificados que tienen que ser escaneados y guardados al servidor ya por si mismo asi que eso seria automatico por las personas qeu trabajan en la universidad.

Si no mal entiendo asi seria?

HTML:
<a href="https://dominio.com/pdf/"<?php echo . $current_user->ID ; ?>".pdf">LINK</a>
 
No molesta por que son certificados que tienen que ser escaneados y guardados al servidor ya por si mismo asi que eso seria automatico por las personas qeu trabajan en la universidad.

Si no mal entiendo asi seria?

HTML:
<a rel="nofollow" href="https://dominio.com/pdf/"<?php echo . $current_user->ID ; ?>".pdf">LINK</a>

Sería:

HTML:
<a href="https://dominio.com/pdf/"<?php echo get_current_user_id(); ?>".pdf">LINK</a>
 
mmm... Ahí ya no puedo ayudarte más. Puede ser el lugar donde pones el link, pero no tengo contexto para darme cuenta.

Lo he solucionado amigo, gracias de todas maneras. El problema era las comillas.

Asi si funciona:
HTML:
<a href="https://dominio.com/pdf/<?php echo get_current_user_id(); ?>.pdf">LINK</a>
 
Atrás
Arriba