Avisos
Vaciar todo

[Resuelto] Ocultar página a usuarios no logueados  

 
Tomás
 Tomás
Reputable Member

Hola, me gustaría ocultar una página en concreto de mi web a los usuarios no logueados, pero sin plugin. Aunque sea con CSS utilizando: la clase .logged-in

La página en cuestión es: page-id-9560

Por favor, algún código de CSS válido?. También me serviría en php

 

Gracias de antemano.

 

Contenido solo visible a usuarios registrados

Respondido : 14/11/2023 12:23 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Tomás.

Prueba añadir lo siguiente en el archivo functions.php que encontrarás en wp-content -> themes -> tu-plantilla o si utilizas algún plugin como puede ser Code Snippets 

if( !function_exists('we_restrict_access_without_login') ):

add_action( 'template_redirect', 'we_restrict_access_without_login' );

function we_restrict_access_without_login(){

/* obtenemos la página actual o ID de la publicación */
$page_id = get_queried_object_id();

/* agregamos una listas de IDs de páginas o publicaciones para restricción */
$behind_login_pages = [ 9560 ];

if( ( !empty($behind_login_pages) && in_array($page_id, $behind_login_pages) ) && !is_user_logged_in() ):

wp_die(' No tienes permiso para acceder a esta página.');
return;
exit;

endif;
}

endif;

 

Utilizamos la función get_queried_object_id() para obtener el ID de la página o post que estamos visitando. Una vez comprobado el ID de la página/post, con la variable $behind_login_pages le pasamos el ID o IDs de páginas que queremos restringir. Por último añadimos la condición if( ( !empty($behind_login_pages) && in_array($page_id, $behind_login_pages) ) && !is_user_logged_in() ): la que nos comprobará si el usuario ha iniciado sesión o no y si la página está restringida.

Si el usuario no ha iniciado sesión y la página está restringida, le mostrará el mensaje "No tienes permiso para acceder a esta página"

 

Un Saludo

 

Respondido : 14/11/2023 11:14 am

wpdoctor-revisa-la-salud-de-tu-wordpress

Tomás
 Tomás
Reputable Member

@pepesoler

Muchas gracias Pepe y si fueran varias páginas, sería así?

$behind_login_pages = [ 9560, 9561, 9562, 9563 ]
Respondido : 14/11/2023 11:23 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Tomás.

Exacto, solo tienes que añadir los IDs de las páginas que quieres restringir el acceso.

 

Un Saludo

 

Respondido : 14/11/2023 11:28 am

Tomás
 Tomás
Reputable Member

@pepesoler

Muchas gracias!

 

¡¡¡Grande Pepe!!!!

Respondido : 14/11/2023 11:29 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Tomás.

Nada, como siempre un placer poder orientaros en lo que nos sea posible.

Cualquier consulta que tengas no dudes en comunicarlo.

 

Un saludo

Respondido : 14/11/2023 11:39 am

Cursos Gratuitos WordPress