Crear una página de WordPress protegida con NOMBRE DE USUARIO y CONTRASEÑA

4

Tengo que crear una página privada, que solo será visible para los usuarios que tengan un nombre de usuario y contraseña.

Pude crear una página protegida con nombre de usuario y contraseña, ahora los usuarios están suscritos, por lo que de forma predeterminada no pueden ver la página privada. ¿Hay alguna manera de hacer que la página privada sea visible para los suscriptores?

Gracias,

    
pregunta Neha Patel 20.03.2018 - 18:27

1 respuesta

4

¿Qué hay de considerar una plantilla específica que comprueba si el usuario ha iniciado sesión utilizando algo como:

if ( is_user_logged_in() ) {
   // your code for logged in user 
  } else {
    // your code for logged out user (e.g. a "you must be logged in" message)
  }

Puede ir tan lejos como para agregar un campo personalizado que use para indicar que la página en cuestión es privada para los usuarios registrados, luego en la prueba de la plantilla page.php la presencia de ese valor de campo antes de determinar qué página plantilla para usar ... Hago algo similar a esto para las páginas que requieren que los usuarios inicien sesión y funciona muy bien.

Esto también elimina la necesidad de que usted le dé a alguien una contraseña para ver una página, simplemente necesitarían iniciar sesión con sus propias credenciales.

ACTUALIZACIÓN: pensé que expandiría mi respuesta para ayudar a las personas que no estén familiarizadas con la forma de restringir el contenido mediante campos y plantillas personalizados, así que aquí está lo que hago:

  1. Utilizo el increíble complemento "Advanced Custom Fields" (la versión pro bien vale el costo, pero el complemento gratuito funcionará bien para este propósito). enlace

  2. En la configuración del complemento ACF creo un campo personalizado que es una casilla de verificación que tiene la etiqueta "¿Restringido?" y aplicarlo a todas las páginas. Por lo tanto, cuando estoy creando o editando cualquier página, puedo marcar la casilla si quiero que esté restringido a usuarios registrados

  3. Modifiqué mi archivo stock page.php que venía con mi tema para agregar un cheque para este campo (contiene un valor o no, por ejemplo, si está marcado), si la respuesta es sí, llamo plantilla restringida a la página de contenido, si la respuesta es no, entonces usa la plantilla de la página de contenido normal. Aquí está mi código:

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); $restrict = get_field('restricted'); if($restrict) { get_template_part( 'content', 'page-restricted' ); } else { get_template_part( 'content', 'page' ); } endwhile; endif; ?>

  4. Copié la plantilla content-page.php a una nueva plantilla llamada content-page-restricted.php, que luego modifiqué para agregar un cheque para ver si el usuario ha iniciado sesión. Si no, muestro una mensaje para iniciar sesión o registrarse con un enlace a nuestra página de registro, si están conectados, pueden ver el contenido. Aquí está mi código para eso:

    <?php if ( !is_user_logged_in() ) { echo'<div id="signupMssg">Please <a class="fancybox-inline" href="#fancyboxID-2">Login</a> or <a href="../Signup">Sign Up</a>'; echo '<div style="display:none;"><div id="fancyboxID-2">'; echo do_shortcode('[displayLogin]'); echo '</div></div></div>'; } else if ( is_user_logged_in() ) { // Follow the normal Page stuff here ?>

El contenido de fancybox está ahí porque muestro el formulario de inicio de sesión en una superposición emergente si hacen clic en la palabra "Iniciar sesión".

Espero que esto ayude, me parece una forma sencilla de restringir el contenido que funciona mejor que usar páginas "privadas" que requieren una contraseña común ...

    
respondido por el Trisha 20.03.2018 - 21:35

Lea otras preguntas en las etiquetas