Hola @xavi74
Si usas elementor, creo recordar que incluye el formulario de registro.
Sobre el limitar las paginas/contenido te sugiero que pruebes este; https://es.wordpress.org/plugins/content-control/
Iniciador del debate
xavi74
(@xavi74)
Este enlace que me pasas parece ser más lo que ando buscando.
Los usuarios no deben poder registrarse por sí mismos, para ello ya tengo un formulario donde solicitan ser dados de alta.
Iniciador del debate
xavi74
(@xavi74)
Existe un formulario de Login en Elementor pero es de pago y yo uso la versión gratuita de Elementor.
Iniciador del debate
xavi74
(@xavi74)
Ya he encontrado un plug-in que me añade un formulario de login (Osom Modal Login) por si a alguien le sirve.
Ahora me gustaría saber cual es la variable que identifica al usuario logueado.
Gracias a quien pueda echarme una mano.
Hola,
No existe ninguna variable, se usan las cookies para mantener la sesion abierta. Luego cuando el WordPress detecta dichas cookies carga la informacion del usuario.
Si necesitas saber si un usuario tiene la sesion iniciada existen la function de PHP is_user_logged_in();
Exactamente porque lo preguntas? El WordPress o mejor dicho los plugins deberian hacerlo por si mismos.
Iniciador del debate
xavi74
(@xavi74)
Porque la web que tenía antes mi cliente estaba hecha en joomla y había una clase nativa de joomla de sistema que te devolvía el ID del usuario logueado.
Iniciador del debate
xavi74
(@xavi74)
Perfecto, get_current_user_id() me da el ID del usuario logueado como yo quería.
Muchas gracias.
Iniciador del debate
xavi74
(@xavi74)
Lo que he detectado es que las mismas credenciales que adjudica a un usuario para que pueda acceder a la zona privada de la web también le sirven para acceder al wp-admin, aunque solo a una pequeña parte del wp-admin.
¿Habría alguna forma de hacer que sus credenciales sirvan para la zona privada de la web pero no para acceder al wp-admin?
Hola,
Creo recordar que ese tipo de plugins no limitan el acceso al admin, lo mejor es que lo confirmes con los autores del plugin que uses o crear un pequeño plugin para redirijir cualquier usuario a la web si intenta entrar en cualquier url del wp-admin, lo unico es que no podrian usar la pagina de su perfil para cambiar su contraseña, etc…
Iniciador del debate
xavi74
(@xavi74)
Hola,
A mí, que no puedan acceder al wp-admin para modificar nada casi me hace un favor.
¿Podrías darme, más o menos, el código para restringir su acceso menos el de admin y donde ponerlo?, si no es mucha molestia
Hola,
Basicamente primero debes interceptar el usuario actual y comprobar su rol o capacidades y cuando no este dentro de rol administrator redirijir a la pagina que sea, la home, etc…
Este hook; https://developer.wordpress.org/reference/hooks/auth_redirect/ te serviria para detectar si existe el usuario (que inicio sesion) y redirijirlo si fuese necesario
function limit_admin_access() {
$request_uri = sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ?? '' ) );
if ( str_contains( $request_uri, 'wp-admin' ) && ! current_user_can( 'activate_plugins' ) ) {
wp_safe_redirect( home_url() );
exit;
}
}
add_action( 'auth_redirect', 'limit_admin_access' );
En el ejemplo anterior (sin probarlo) comprueba que la url contiene wp-admin y que el usuario actual no tiene permisos de admin, con lo que se redirije a la home.
Cuando añades codigo personalizado existen tres maneras:
- Creando un plugin de personalizaciones
- Usando el archivo functions.php del tema, aqui se debe crear un tema hijo si el tema no esta creado por uno mismo
- Un plugin de snipets como por ejemplo; https://wordpress.org/plugins/code-snippets/
La primera es la que se suele recomendar cuando no tiene relacion con el tema y la segunda es al contrario.
La tercera se recomienda cuando no tienes conocimientos de programacion o por algun motivo no se utilizan las anteriores.
-
Esta respuesta fue modificada hace 1 año, 11 meses por
Sergio.
Iniciador del debate
xavi74
(@xavi74)
Y del código que me pasas ¿Dónde pongo el shortcode que llama a esa función?
Que shortcode?
Deduzco que usas el plugin de snipets y que yo recuerde los codigos se efecutan segun este configurado.
Iniciador del debate
xavi74
(@xavi74)
No, yo uso un bloque en elementor de «shortcode» y ahí hago la llamada a la función.