Avisos
Vaciar todo

[Resuelto] Ocultar página a usuarios no logueados

6 Respuestas
2 Usuarios
0 Reactions
24 Visitas
Tomás
Respuestas: 347
Honorable Member
Topic starter
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

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: 42205
Illustrious Member Admin
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

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: 347
Honorable Member
Topic starter
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@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: 42205
Illustrious Member Admin
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

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: 347
Honorable Member
Topic starter
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@pepesoler

Muchas gracias!

 

¡¡¡Grande Pepe!!!!


 
Respondido : 14/11/2023 11:29 am
Pepe
 Pepe
Respuestas: 42205
Illustrious Member Admin
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

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