Como ocultar funcion de Mensaje Privado para usuarios anonimos

  • Autor Autor Stricors
  • Fecha de inicio Fecha de inicio
S

Stricors

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas a todos!

He instalado "wpu messages private" el cual es un plugin para el envio de mensajes entre usuarios del blog, el cual solo se usa en la parte del panel, entonces lo que hice yo fue adaptarlos en los comentarios de los post, vea la siguiente imagen:

Dibujo.JPG


el codigo que use para integrarlo es:

Insertar CODE, HTML o PHP:
<img width="16" height="16" align="TEXTTOP" alt="Mensaje Privado" title="Mensaje Privado" src="<a href="'.bloginfo('wpurl').'/wp-content/plugins/wp-private-messages/icons/messageread.png">

<a href="<a href=".bloginfo('wpurl').'/wp-admin/users.php?page=wp-private-messages/wpu_private_messages.php-wpu=newpm-d=<?php commnt_ID() ?>-name=<?php comment_autor(); ?>">Enviar Mensaje Privado</a>

tal funcion hace aparecer en cada comentario un link para el envio de un mensaje privado, pero lo malo es que tambien aparece en los comentario de los usuarios anonimos, entonces necesito que no tome en cuenta a usuarios anonimos!

se que hay un codigo que logre hacer esa funcion...

Espero que me hayan entendido, lo requiero con urgencia..

Saludos y Gracias!
 
Última edición:
Según lo que entendí quieres que los usuarios de tu Blog puedan ver el enlace para mandar los privados, si es asi este código que te ayudara

PHP:
<?php
if ( is_user_logged_in() )
{
 Aqui colocas lo que veran los usuarios Loggeados
}
else
{
 Aqui colocas lo que veran los NO usuarios Loggeados
};
?>

Si este te sirve avisa, si no trata de explicar mejor para ver que se puede hacer
 
Según lo que entendí quieres que los usuarios de tu Blog puedan ver el enlace para mandar los privados, si es asi este código que te ayudara

PHP:
<?php
if ( is_user_logged_in() )
{
 Aqui colocas lo que veran los usuarios Loggeados
}
else
{
 Aqui colocas lo que veran los NO usuarios Loggeados
};
?>

Si este te sirve avisa, si no trata de explicar mejor para ver que se puede hacer

---
por lo que veo si me entendistes, pero explicare de nuevo por si acaso:

la funcion por defecto se muestra a usuarios conectados y no conectados y anonimos,
lo que necesito es ocultar la funcion (enviar mensaje privado) en los comentarios de usuarios anonimos.

Probe tu codigo pero me dio error:

Insertar CODE, HTML o PHP:
Parse error: syntax error, unexpected '<'

Gracias por la ayuda espero que tengas otras ideas..

Saludos amigo!
 
Estimado, podrás poner todo el código?
Igualmente, intuyo que estás poniendo HTML dentro del IF del PHP, correcto?

Ojo que esto está mal:

Insertar CODE, HTML o PHP:
<?php
if ( is_user_logged_in() )
{
 código HTML
}
else
{
 Otro código HTML
};
?>

Tenés que usar echo

Insertar CODE, HTML o PHP:
<?php
if ( is_user_logged_in() )
{
 echo "codigo HTML";
}
else
{
 echo "codigo HTML";
};
?>

Importante: Tené en cuenta que si vas a usar comillas (por lo que veo en tu código, debes usarlas) entonces tienes que poner una barra invertida (\) antes.
Ejemplo:

Insertar CODE, HTML o PHP:
echo "<img src=\"image.jpg\">";

Bueno, cualquier cosa nos avisas.

Saludos!

---
por lo que veo si me entendistes, pero explicare de nuevo por si acaso:

la funcion por defecto se muestra a usuarios conectados y no conectados y anonimos,
lo que necesito es ocultar la funcion (enviar mensaje privado) en los comentarios de usuarios anonimos.

Probe tu codigo pero me dio error:

Insertar CODE, HTML o PHP:
Parse error: syntax error, unexpected '<'

Gracias por la ayuda espero que tengas otras ideas..

Saludos amigo!
 
Gracias amigo llevare acabo la prueba.

Mira en mi blog los usuarios anonimos pueden dejar comentarios entonces en cada comentario se agrega un enlaze para envio de MP para cada comentario, lo que necesito es un codigo que oculte el enlaze de envio de MP unicamente en comentarios de usuarios anonimos.

espero aver explicado bien saludos y gracias!
 
Hola Stricors,
con el código anterior vas a andar bien.
Para lo que vos necesitas, deja el segundo condicional del IF vacío (es decir, si el usuario NO está logueado entonces no muestro el código)

Insertar CODE, HTML o PHP:
<?php
if ( is_user_logged_in() )
{
 echo "codigo HTML";
}
else
{}
?>

Saludos!
 
Para lograr lo que quieres debes hackear el código del plugin para que solo muestre el contenido que deseas; el código que te recomendaron sirve para mostrar o no el contenido, dependiendo de si el usuario ha iniciado sesión o no, que de acuerdo a lo que entendí no es exactamente lo que quieres.
 
Todo Resulto amigos... un amigo me ayudo y todo me resulto..

GRACIAS A TODOS!

SALUDOS!
 
Última edición:
Bárbaro,
podrás compartir con el foro como lo solucionaste? Esto puede ayudar a otros usuarios.

Estaba viendo que podrías usar las funciones username_exists y comment_author

Algo así:

Insertar CODE, HTML o PHP:
<?php 
$usuariocomment = $comment->comment_author;
if (username_exists($usuariocomment)) { 
echo "muestro opcion para mensaje privado"; }
else {}
?>

Esto funciona pero tiene un bug: No me registro y dejo un comentario como "Tito". Si el usuario Tito ya existe en tu base de usuarios, entonces se mostrará la opción para enviarle un privado.
El tito oficial puede recibir privados relacionados a comentarios que él no dejó... se entiende?

Debería prohibirse entonces que alguien deje un comentario como anónimo usando de nombre alguno de los que ya exista en tu base de usuarios. O bien, mejorar ese código. ...

Pero bueno, es algo.

Saludos!
 
El codigo que use fue el siguiente:

PHP:
<?php if (is_user_logged_in() && !empty($comment->user_id)) { ?><img width="16" height="16" align="TEXTTOP" alt="Mensaje Privado" title="Mensaje Privado" src="<?php bloginfo('wpurl'); ?>/wp-content/plugins/wp-private-messages/icons/messageread.png" /><a href="<?php bloginfo('wpurl'); ?>/wp-admin/users.php?page=wp-private-messages/wpu_private_messages.php&wpu=newpm&id=<?php echo $comment->user_id; ?>&name=<?php comment_author(); ?>">Enviar Mensaje Privado</a><?php } ?>

este codigo va es en el "comments.php".
 
Atrás
Arriba