🔐 Mejorando el Código de Zona Privada con Formulario de Acceso

En este artículo, abordaremos dos mejoras clave en el código de gestión de usuarios en WordPress. La primera es agregar un formulario de inicio de sesión dentro de la función enhanced_user_private_area_shortcode para que los usuarios puedan iniciar sesión sin ser redirigidos a la página de acceso predeterminada de WordPress. La segunda mejora consiste en personalizar la redirección de cierre de sesión para que los usuarios sean enviados al formulario de acceso personalizado en lugar de wp-login.php.

zona privada wordpress acceso

Modificación del Formulario de Login

El código original mostraba simplemente un mensaje si el usuario no estaba logueado:

function enhanced_user_private_area_shortcode() {
    if (!is_user_logged_in()) {
        return '<p>Debes estar registrado para ver esta página.</p>';
    }
Lenguaje del código: PHP (php)

Este comportamiento no era óptimo, ya que el usuario tenía que buscar la página de login manualmente, lo que podía resultar confuso y poco intuitivo. Para mejorar la experiencia del usuario, reemplazamos este mensaje con un formulario de inicio de sesión estilizado y centrado.

Ahora, cuando un usuario acceda a la zona privada sin haber iniciado sesión, en lugar de ver un simple mensaje, se le presentará un formulario claro y atractivo que le permitirá autenticarse de inmediato sin necesidad de salir de la página.

Además, una vez que el usuario inicie sesión, permanecerá en la misma página en lugar de ser redirigido a una ubicación genérica, asegurando así una navegación fluida y sin interrupciones. Esto facilita el acceso a la zona privada y mejora significativamente la usabilidad del sitio.

Código actualizado:

function enhanced_user_private_area_shortcode() {
    if (!is_user_logged_in()) {
        $output = '<div class="login-container">';
        $output .= '<h2>Iniciar Sesión</h2>';
        $output .= wp_login_form([
            'echo'           => false,
            'redirect'       => $_SERVER['REQUEST_URI'], // Redirige a la misma página después del login
            'remember'       => true,
            'label_username' => 'Usuario o Email',
            'label_password' => 'Contraseña',
            'label_remember' => 'Recuérdame',
            'label_log_in'   => 'Acceder'
        ]);
        $output .= '</div>';

        $output .= '<style>
            .login-container {
                max-width: 400px;
                margin: 50px auto;
                padding: 20px;
                background: #ffffff;
                border-radius: 10px;
                box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
                text-align: center;
            }
            .login-container h2 {
                margin-bottom: 20px;
                font-size: 24px;
                color: #0073aa;
            }
            .login-container form {
                display: flex;
                flex-direction: column;
                gap: 15px;
            }
            .login-container input {
                width: 100%;
                padding: 10px;
                border: 1px solid #ccc;
                border-radius: 5px;
            }
            .login-container input[type="submit"] {
                background: #0073aa;
                color: white;
                border: none;
                cursor: pointer;
                padding: 12px;
                font-size: 16px;
            }
            .login-container input[type="submit"]:hover {
                background: #005a87;
            }
        </style>';

        return $output;
    }
Lenguaje del código: PHP (php)

¿Qué hemos mejorado?

  • Ahora, en lugar de un simple mensaje, se muestra un formulario de inicio de sesión.
  • Se usa wp_login_form() para generar un formulario seguro y funcional.
  • El usuario es redirigido a la misma página después de iniciar sesión.
  • Se aplican estilos CSS para mejorar la apariencia del formulario y centrarlo en la pantalla.

Personalización de la Redirección tras Cerrar Sesión

Por defecto, WordPress redirige a los usuarios a wp-login.php después de cerrar sesión. Sin embargo, en muchos casos, es mejor redirigirlos a una página personalizada de inicio de sesión.

Código original:

Cuando un usuario cerraba sesión con wp_logout_url(), era enviado a wp-login.php.

Para corregir esto, añadimos un filtro en logout_redirect, que envía al usuario a una página de login personalizada.

Código actualizado:

function custom_logout_redirect() {
    return home_url('/mi-pagina-de-login/'); // Cambia esto por la URL de tu página de Zona Privada
}
add_filter('logout_redirect', 'custom_logout_redirect', 10, 2);
Lenguaje del código: PHP (php)

¿Qué hemos cambiado?

  • Ahora, cuando un usuario cierra sesión, es redirigido a una página específica en lugar de wp-login.php.
  • home_url('/mi-pagina-de-login/') debe reemplazarse con la URL real de la página de login.
  • Se ha mejorado la experiencia del usuario al mantener la navegación dentro del sitio.

Con estas mejoras, logramos un sistema de autenticación más amigable y elegante en WordPress. Ahora los usuarios pueden iniciar sesión desde la misma página donde desean acceder, y cuando cierran sesión, son dirigidos a una página de login personalizada en lugar de wp-login.php.

Intenta hacer los cambios tú mismo en una web de pruebas para aprender. De todas formas te dejo el código completo del sistema por si te haces un lio para que simplemente lo copies y lo pegues.

El siguiente código tienes que agregarlo en el functions.php de tu tema hijo o utilizar un plugin como CODE SNIPPETS. También puedes crear tu propio plugin con unos simples pasos.

🔐 Este contenido es solo para suscriptores premium.

*Actualmente no se aceptan nuevos suscriptores.

Nos vemos en el siguiente tutorial. Un saludo.

ℹ️ Nota:
Estos códigos de la zona premium se mantienen regularmente. Si usas un código y no te funciona correctamente, puedes abrir un ticket de soporte explicando los detalles y lo vemos.
5/5 - (2 votos)
Compartir Artículo

Un comentario

  1. Fran Salas Master WP 1 año atrás

    ¿Crees que le falta alguna funcionalidad al sistema? Déjalo en los comentarios.

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

0%