✅ Agregar Campos Personalizados al Perfil de Usuario (Sin Plugins) | WordPress

La personalización de perfiles de usuario en WordPress va más allá de los campos estándar proporcionados por defecto. A veces, necesitas recopilar información específica para tu sitio.

En este artículo, exploraremos cómo agregar campos personalizados al perfil de usuario sin depender de plugins adicionales.

Existen varios tipos de campos que puedes añadir, como campos de texto, editores enriquecidos, opciones de radio, selectores y casillas de verificación. Vamos a analizar un código práctico que te permitirá implementar estas funciones de manera eficiente.

campos personalizados perfil usuario wordpress

Los siguientes códigos tienes que agregarlos en el functions.php de tu tema hijo o utilizar un plugin como CODE SNIPPETS.

Código de Campos Personalizados

Agregar Campos al Perfil de Usuario

// Agregar campos personalizados al perfil de usuario
function agregar_campos_personalizados_usuario($user) {
    ?>
    <h3>Campos Personalizados</h3>

    <table class="form-table">
        <!-- Campo de Texto -->
        <tr>
            <th><label for="campo_texto">Campo de Texto</label></th>
            <td>
                <input type="text" name="campo_texto" id="campo_texto" value="<?php echo esc_attr(get_user_meta($user->ID, 'campo_texto', true)); ?>" class="regular-text" />
            </td>
        </tr>

        <!-- Editor Enriquecido -->
        <tr>
            <th><label for="campo_editor">Editor Enriquecido</label></th>
            <td>
                <?php
                $campo_editor_valor = get_user_meta($user->ID, 'campo_editor', true);
                wp_editor($campo_editor_valor, 'campo_editor', array('textarea_name' => 'campo_editor'));
                ?>
            </td>
        </tr>

        <!-- Opciones de Radio -->
        <tr>
            <th><label for="campo_radio">Opciones de Radio</label></th>
            <td>
                <fieldset>
                    <label><input type="radio" name="campo_radio" value="opcion1" <?php checked('opcion1', get_user_meta($user->ID, 'campo_radio', true)); ?>> Opción 1</label><br>
                    <label><input type="radio" name="campo_radio" value="opcion2" <?php checked('opcion2', get_user_meta($user->ID, 'campo_radio', true)); ?>> Opción 2</label><br>
                </fieldset>
            </td>
        </tr>

        <!-- Selector -->
        <tr>
            <th><label for="campo_select">Selecciona</label></th>
            <td>
                <select name="campo_select">
                    <option value="opcion1" <?php selected('opcion1', get_user_meta($user->ID, 'campo_select', true)); ?>>Opción 1</option>
                    <option value="opcion2" <?php selected('opcion2', get_user_meta($user->ID, 'campo_select', true)); ?>>Opción 2</option>
                </select>
            </td>
        </tr>

        <!-- Casilla de Verificación -->
        <tr>
            <th><label for="campo_checkbox">Casilla de Verificación</label></th>
            <td>
                <label><input type="checkbox" name="campo_checkbox" value="1" <?php checked('1', get_user_meta($user->ID, 'campo_checkbox', true)); ?>> Marcar</label>
            </td>
        </tr>
    </table>
    <?php
}
Lenguaje del código: JavaScript (javascript)

Explicación:

  • Este código crea una función (agregar_campos_personalizados_usuario) que imprime los campos personalizados en la página de edición de perfiles del usuario.
  • Se utiliza una tabla (<table>) para organizar los diferentes tipos de campos.
  • Para cada tipo de campo, se proporciona una etiqueta (<label>), y se utiliza PHP para mostrar o seleccionar el valor guardado previamente en la base de datos de usuario.

Guardar Valores de Campos Personalizados

// Guardar valores de campos personalizados del perfil de usuario
function guardar_campos_personalizados_usuario($user_id) {
    // Actualizar valor del Campo de Texto
    if (isset($_POST['campo_texto'])) {
        update_user_meta($user_id, 'campo_texto', sanitize_text_field($_POST['campo_texto']));
    }

    // Actualizar valor del Editor Enriquecido
    if (isset($_POST['campo_editor'])) {
        update_user_meta($user_id, 'campo_editor', wp_kses_post($_POST['campo_editor']));
    }

    // Actualizar valor del Campo de Radio
    if (isset($_POST['campo_radio'])) {
        update_user_meta($user_id, 'campo_radio', sanitize_text_field($_POST['campo_radio']));
    }

    // Actualizar valor del Campo de Select
    if (isset($_POST['campo_select'])) {
        update_user_meta($user_id, 'campo_select', sanitize_text_field($_POST['campo_select']));
    }

    // Actualizar valor de la Casilla de Verificación
    $checkbox_valor = isset($_POST['campo_checkbox']) ? '1' : '0';
    update_user_meta($user_id, 'campo_checkbox', $checkbox_valor);
}

// Acciones
add_action('show_user_profile', 'agregar_campos_personalizados_usuario');
add_action('edit_user_profile', 'agregar_campos_personalizados_usuario');
add_action('personal_options_update', 'guardar_campos_personalizados_usuario');
add_action('edit_user_profile_update', 'guardar_campos_personalizados_usuario');
Lenguaje del código: PHP (php)

Explicación:

  • La función guardar_campos_personalizados_usuario se encarga de actualizar los valores de los campos personalizados cuando se guarda el perfil de usuario.
  • Se utiliza update_user_meta para almacenar o actualizar los valores en la base de datos de usuario.
  • Los valores se filtran y se procesan para garantizar la seguridad y la integridad de los datos. Por ejemplo, sanitize_text_field se utiliza para campos de texto, y wp_kses_post se usa para el editor enriquecido.

Conclusión

Personalizar el perfil de usuario sin depender de plugins te ofrece un control total sobre la información que recopilas. Este código proporciona una base sólida para agregar y gestionar campos personalizados, desde simples campos de texto hasta opciones más avanzadas como editores enriquecidos y selectores. ¡Experimenta con estos campos personalizados y adapta tu sitio web de WordPress según tus necesidades específicas!

Nos vemos en el siguiente tutorial.

Un saludo

5/5 - (4 votos)
Compartir Artículo

Un comentario

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

    Deja tus opiniones o dudas 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%