Marketing de contenido

WordPress: cree una plantilla de página que requiera que un usuario esté registrado e iniciado sesión

Estábamos terminando de implementar un tema personalizado en el sitio de un cliente y nos solicitaron que creáramos algún tipo de interacción en la que algunas de las páginas estuvieran restringidas a suscriptores registrados. WordPress ofrece opciones de visibilidad para páginas, pero eso no se adapta a este escenario.

  • Privado – Seleccionar la visibilidad como privada solo permite a los administradores y editores ver el contenido.
  • Protegido con contraseña – requiere que se aplique un código único para cada página para ver el contenido.

Al principio pensamos en implementar complementos de terceros, pero la solución era sencilla. Podríamos crear una plantilla única que requiera que los visitantes se registren e inicien sesión para ver la página.

Plantilla de WordPress: solo suscriptores

Primero, copiamos la plantilla de página de nuestro cliente (page.php) dentro de niño tema. Para crear una plantilla, debe agregar algo de código en la parte superior de su página:

<?php /* Template Name: Subscribers Only */ ?>

A continuación, busque la línea en el código de su página que muestra el contenido. Debe tener un aspecto como este:

<?php the_content(); ?>

Ahora, necesitará ajustar algo de código alrededor de esa línea:

<?php
$redirect_url = get_permalink(); // Get the current page's URL

if (is_user_logged_in()) :
?>
    <h2><?php the_title(); ?></h2>
    <?php the_content(); ?>
<?php else : ?>
    <h2>Subscriber Only</h2>
    <p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>
<?php endif; ?>

Aquí hay una explicación del código en viñetas:

  • $redirect_url = get_permalink();: Esta línea recupera la URL de la página actual y la almacena en la variable $redirect_url.
  • if (is_user_logged_in()) :: Esta declaración condicional verifica si un usuario ya ha iniciado sesión.
  • Si el usuario ha iniciado sesión, se ejecuta el código dentro de este bloque.
    • <h2><?php the_title(); ?></h2>: Esto muestra el título de la página actual.
    • <?php the_content(); ?>: Esto muestra el contenido de la página actual.
  • Si el usuario no ha iniciado sesión, el código dentro del else se ejecuta el bloque.
    • <h2>Subscriber Only</h2>: Esto muestra un encabezado que indica que el contenido está restringido.
    • <p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>: Esto muestra un mensaje que explica que el contenido está restringido a ciertos roles y proporciona un enlace para "Iniciar sesión". Los enlaces href El atributo se establece en la URL de inicio de sesión generada por wp_login_url($redirect_url), asegurando que los usuarios sean redirigidos a la página actual después de iniciar sesión.

Este código verifica de manera efectiva si un usuario ha iniciado sesión y, en caso contrario, lo alienta a iniciar sesión para acceder al contenido restringido, con un enlace que lo dirige de regreso a la página que estaba intentando ver.

Ver por rol de usuario específico

También puedes limitar el contenido a roles de usuario específicos si lo deseas:

<?php
$allowed_roles = array('subscriber', 'editor', 'author'); // Add the roles you want to allow

$user = wp_get_current_user();
$redirect_url = get_permalink();

if (array_intersect($allowed_roles, $user->roles)) :
?>
    <h2><?php the_title(); ?></h2>
    <?php the_content(); ?>
<?php else : ?>
    <h2>Restricted Access</h2>
    <p>We're sorry, the content you are trying to reach is restricted to certain roles. 
    <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>
<?php endif; ?>

Aquí hay una explicación del código en viñetas:

  • $allowed_roles = array('subscriber', 'editor', 'author');: Esta línea crea una serie de roles permitidos, especificando qué roles de usuario tienen permiso para acceder al contenido. Puede personalizar esta matriz para incluir los roles que desea permitir.
  • $user = wp_get_current_user();: este código recupera información sobre el usuario actual, incluidas sus funciones.
  • $redirect_url = get_permalink();: Esta línea almacena la URL de la página actual en el $redirect_url variable, que se utilizará para redirigir al usuario a la página actual después de iniciar sesión.
  • if (array_intersect($allowed_roles, $user->roles)) :: Esta declaración condicional verifica si los roles del usuario se cruzan con los roles enumerados en el $allowed_roles formación. Es decir, comprueba si el usuario tiene alguno de los roles permitidos.
  • Si el usuario tiene uno de los roles permitidos, se ejecuta el código dentro de este bloque.
    • <h2><?php the_title(); ?></h2>: Esto muestra el título de la página actual.
    • <?php the_content(); ?>: Esto muestra el contenido de la página actual.
  • Si el usuario no tiene uno de los roles permitidos, el código dentro del else se ejecuta el bloque.
    • <h2>Restricted Access</h2>: Esto muestra un encabezado que indica que el contenido está restringido.
    • <p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>: Esto muestra un mensaje que explica que el contenido está restringido a ciertos roles y proporciona un enlace para "Iniciar sesión". Los enlaces href El atributo se establece en la URL de inicio de sesión generada por wp_login_url($redirect_url), asegurando que los usuarios sean redirigidos a la página actual después de iniciar sesión.

Este código restringe efectivamente el acceso a roles específicos y, si un usuario no tiene uno de los roles permitidos, le solicita que inicie sesión con un enlace que lo redireccionará a la página actual después de iniciar sesión.

Seleccione su plantilla

Para utilizar la página, deberá seleccionar el Solo suscriptores plantilla de página en la sección avanzada de las opciones de su página (en la barra lateral). Esto restringirá la página a los lectores que hayan iniciado sesión o a sus funciones definidas.

Douglas Karr

Douglas Karr es CMO de AbrirINSIGHTS y el fundador de la Martech Zone. Douglas ha ayudado a docenas de nuevas empresas exitosas de MarTech, ha colaborado en la diligencia debida de más de $5 mil millones en adquisiciones e inversiones de Martech y continúa ayudando a las empresas a implementar y automatizar sus estrategias de ventas y marketing. Douglas es un orador y experto en transformación digital y MarTech reconocido internacionalmente. Douglas también es autor de una guía para principiantes y de un libro sobre liderazgo empresarial.

Artículos Relacionados

Volver al botón superior
Cerrar

Adblock detectado

Martech Zone puede proporcionarle este contenido sin costo porque monetizamos nuestro sitio a través de ingresos publicitarios, enlaces de afiliados y patrocinios. Le agradeceríamos que elimine su bloqueador de anuncios mientras visita nuestro sitio.