Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Mostrar notificaciones por usuario en la administración de WordPress

¿Te gustaría mostrar mensajes personalizadas para los usuarios de tu sitio?. En este artículo veremos cómo mostrar notificaciones por usuario cuando se conectan a la administración de WordPress.

 

Resultado Final

Al final lo que queremos obtener es algo similar a lo que se muestra en la siguiente imagen. Cuando un usuario que tiene algún mensaje asignado por el administrador, se le mostrará como notificación en el backend de WordPress.

Resultado final mensaje personalizado usuario

 

Código para crear un campo adicional en el perfil de usuario

Primero necesitamos un campo por usuario para que el administrador ingrese el mensaje, nos basaremos en el artículo de agregar campos adicionales al perfil de usuario.

La única modificaciones es que restringiremos este campo para que sólo los administradores puedan verlo cuando editan un perfil de usuario.
Recuerda que puedes agregar código PHP en el archivo functions.php de tu tema hijo o usuando algún plugin de Snippets.

<?php //No copiar este línea

// Add fields to the section
add_action( 'show_user_profile', 'dcms_field_message_user' );
add_action( 'edit_user_profile', 'dcms_field_message_user' );
 
function dcms_field_message_user( $user ) {
        // Validate administrator user
        if ( ! current_user_can( 'manage_options' ) ) return;
?>
    <h3><?php _e('User Alert'); ?></h3>
    
    <table class="form-table">
        <tr>
            <th>
                <label for="message"><?php _e('Message'); ?></label>
            </th>
            <td>
                <input type="text" name="message" id="message" class="regular-text"
                        value="<?php echo esc_attr( get_the_author_meta( 'message_user', $user->ID ) ); ?>" />
                <p class="description"><?php _e('Add a custom message for the backend user'); ?></p>
            </td>
        </tr>
    </table>
<?php }

// Save user fields
add_action( 'personal_options_update', 'dcms_save_field_message_user' );
add_action( 'edit_user_profile_update', 'dcms_save_field_message_user' );

function dcms_save_field_message_user( $user_id ) {
        
    if ( !current_user_can( 'edit_user', $user_id ) ) {
        return false;
    }

    if( isset($_POST['message']) ) {
        $message = sanitize_text_field($_POST['message']);
        update_user_meta( $user_id, 'message_user', $message );
    }
}

 
Tras ingresar este código veremos que al editar un usuario aparecerá una nueva sección, tal como se muestra en la imagen:

Campo adicional perfil de usuario

 

Código para mostrar la notificación

Para mostrar el mensaje, ingresado anteriormente por un administrador, cuando un usuario particular esta en el área de administración, nos basaremos en el artículo mostrar mensajes en la administración de WordPress.


<?php //No copiar este línea

add_action( 'admin_notices', 'dcms_show_message_user' );
function dcms_show_message_user() {
        $message = get_the_author_meta( 'message_user', get_current_user_id() );
        if ( ! $message ) return;
    ?>
    <div id="message" class="notice notice-warning">
                <p>👉🏽 <strong>Mensaje Administrador: </strong> <?= $message ?></p>
        </div>
    <?php
}

 
En el código anterior:

  • Usamos el Hook admin_notices que hace referencia a la función dcms_show_message_user
  • Dentro de esta función obtenemos el ID del usuario actual y comprobamos si tiene un mensaje, recuperando de la metadata de usuario
  • Si tiene mensaje entonces mostramos el código HTML de la notificación

 

Conclusión

Como has podido comprobar, puedes mostrar un mensaje personalizado a un usuario en particular y este lo verá cuando ingrese a la sección de administración del sitio. En este artículo hemos visto cómo realizarlo directamente a través de código.

 
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores.

Suscríbete a DecodeCMS:  

 

La entrada Mostrar notificaciones por usuario en la administración de WordPress es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires