Avisos
Vaciar todo

[Resuelto] Ocultar página a usuarios no logueados

6 Respuestas
2 Usuarios
0 Reactions
24 Visitas
Tomás
Respuestas: 346
Reputable Member
Topic starter
 

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
Tags del tema
Pepe
 Pepe
Respuestas: 41126
Illustrious Member 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
Tomás
Respuestas: 346
Reputable Member
Topic starter
 

@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
Respuestas: 41126
Illustrious Member 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
Respuestas: 346
Reputable Member
Topic starter
 

@pepesoler

Muchas gracias!

 

¡¡¡Grande Pepe!!!!


 
Respondido : 14/11/2023 11:29 am
Pepe
 Pepe
Respuestas: 41126
Illustrious Member 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